- 締切済み
【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"; }
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
> では、どのように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()); }
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
ヘッダ内で using ... するのはマナー違反。 面倒でも string 改め std::stinrg とすべし。 ...てか ref class 内に unmanage型をもつことはできません。
- hanabutako
- ベストアンサー率54% (492/895)
stringではなく、std::stringと書くとか? ヘッダーでusing namespace std::string;するとか? #1さんのおっしゃるとおり、ネームスペースの問題ですね。
- Wr5
- ベストアンサー率53% (2173/4061)
>できません。 っていうのはどういう状態です? ネームスペースの問題…だったりしません? cppには >using namespace std; があるのにヘッダにはないようですが。
補足
では、どのようにstring型を宣言すればよいのですか?