2 ni2016c ni2016c 于 2016.05.08 21:22 提问

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

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

4个回答

CSDNXIAON
CSDNXIAON   2016.05.08 21:32

类中定义一个static数据成员,为什么还要在类外声明?
C++ Primer 学习笔记_47_类与数据抽象 --类的定义和声明
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

devmiao
devmiao   Ds   Rxr 2016.05.08 23:50

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

qq423399099
qq423399099   Ds   Rxr 2016.05.09 08:50

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

linshuhe1
linshuhe1   2016.05.09 09:49

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

}

private class three{

}

}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!