アプリ版:「スタンプのみでお礼する」機能のリリースについて

【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";
}

A 回答 (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());
}
    • good
    • 0

ヘッダ内で using ... するのはマナー違反。


面倒でも string 改め std::stinrg とすべし。

...てか ref class 内に unmanage型をもつことはできません。

この回答への補足

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

補足日時:2013/02/28 13:14
    • good
    • 0

stringではなく、std::stringと書くとか?


ヘッダーでusing namespace std::string;するとか?

#1さんのおっしゃるとおり、ネームスペースの問題ですね。
    • good
    • 0

>できません。



っていうのはどういう状態です?

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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!