首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

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

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

热点排行