c++ - 如何设计将一个类放在另一个类名下
迷茫
迷茫 2017-04-17 13:26:19
[C++讨论组]

有两个类foo和bar,bar为foo服务
我希望设计成
foo 与 foo::bar , 而不是 foo 与 bar

类似
std::vector<int>::iterator 和 std::vector

应该怎样把bar的class放在foo里面?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(2)
巴扎黑

可以使用类嵌套或者typedef,你说的这种 vector::iterator 是用的typedef定义的类型别名

class Out {
public:
    class Inside {
    
    };
};

Out some1;
Out::Inside some2;
class A {

};

class B {
public:
    typedef A Inside;
};

A some1;
B some2;
B::Inside some3;
天蓬老师

C++ 支持嵌套类(nested class),例如

class foo {
    class bar { /* ... */ };
    /* ... */
};

class foo {
    class bar;
    /* ... */
};

class foo::bar {
    /* ... */
};

具体使用方法请参考 C++ Primer 5ed. section 19.5 Nested Classes。

另外std::vector<int>::iterator是另外一个类在std::vector中的别名(typedef),并不是std::vector的嵌套类。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号