初学者求教,C++中在类内声明一个struct和另一个类,在类外怎么定义

template
class List{
struct Node{};
...
class const_iterator{};
class iterator:public const_iterator{};
...
};
struct Node{
Object data;
...
};
这样定义出现了错误,但不知如何解决。并且模板Object在struct Node为何无法使用?

3个回答

需要先申明下,再定义就好了。

在一个类的内部定义另一个类,我们称之为嵌套类(nested class),或者嵌套类型。之所以引入这样一个嵌套类,往往是因为外围类需要使用嵌套类对象作为底层实现,并且该嵌套类只用于外围类的实现,且同时可以对用户隐藏该底层实现。
http://blog.csdn.net/rabbit729/article/details/3334272

定义内部类的话,跟最外层的类的唯一差别就是不加修饰标签public或者使用private进行修饰,就像:
public class One{
class two{

}

private class three{

}

}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐