• 締切済み

【C++】ヘッダ内でstringを格納する変数の宣

【C++】ヘッダ内でstringを格納する変数の宣言ができない 下記クラスのように、string型の変数nameを宣言したいのですができません。 どのようにしてstring型データを格納する変数を宣言すればよいのでしょうか? //--------------- //Neko.h #pragma once #include <string> ref class Neko { private: string name; public: Neko(); }; //--------------- //Neko.cpp #include "StdAfx.h" #include "Neko.h" #include <string> using namespace std; Neko::Neko(){ name = "neko"; }

みんなの回答

回答No.4

> では、どのようにstring型を宣言すればよいのですか? ポインタならもてるので:、たとえば: #include <string> using namespace System; ref class A { public: A(); String^ getName(); ~A(); !A(); private: std::string* name; }; A::A() { name = new std::string("ねこ"); } String^ A::getName() { return gcnew String(name->c_str()); } A::~A() { this->!A(); } A::!A() { delete name; } int main() { A a; Console::WriteLine(a.getName()); }

回答No.3

ヘッダ内で using ... するのはマナー違反。 面倒でも string 改め std::stinrg とすべし。 ...てか ref class 内に unmanage型をもつことはできません。

nanda_____
質問者

補足

では、どのようにstring型を宣言すればよいのですか?

回答No.2

stringではなく、std::stringと書くとか? ヘッダーでusing namespace std::string;するとか? #1さんのおっしゃるとおり、ネームスペースの問題ですね。

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

>できません。 っていうのはどういう状態です? ネームスペースの問題…だったりしません? cppには >using namespace std; があるのにヘッダにはないようですが。

関連するQ&A