读书人

C++中如何在类中定义一个结构

发布时间: 2013-01-11 11:57:35 作者: rapoo

C++中怎么在类中定义一个结构?
刚开始看《thinking in C++》,其中书上有一段头文件代码是这样的:
头文件声明:


class Handle{
struct Cheshire;
Cheshire* smile;
}

在文件中定义Handle:

struct Handle::Cheshire{
int i;
};

我用VS2012敲上去之后,报错是“class Handle 没有名为"Cheshire"的标记成员”...
我想问一下这到底是什么原因?是不是跟VS编译器有关还是说语法不该这样写? c++ class struct 编译器
[解决办法]

#include <iostream>
using namespace std;

class Handle
{
struct Cheshire{int i;};
public:
Cheshire smile;
};

int main(int argc, char* argv[])
{
Handle* hd = new Handle();
hd->smile.i = 23;
cout << hd->smile.i << endl;
delete hd;

return 0;
}

[解决办法]

class Handle
{
struct Cheshire;
Cheshire* smile;
};
struct Handle::Cheshire
{
int i;
};

读书人网 >C++

热点推荐