ni2016c
ni2016c
采纳率50%
2016-05-08 13:22 阅读 3.8k

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

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • devmiao devmiao 2016-05-08 15:50

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

    点赞 评论 复制链接分享
  • qq423399099 小灸舞 2016-05-09 00:50

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

    点赞 评论 复制链接分享
  • linshuhe1 河乐不为 2016-05-09 01:49

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

    }
    
    private class three{
    
    }
    

    }

    点赞 评论 复制链接分享

相关推荐