打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C++编码规范之嵌套类
C++编码规范之嵌套类
Nested Class
当公开嵌套类作为接口的一部分时,虽然可以直接将他们保持在全局作用域中,但将嵌套类的声明置于命名空间是更好的选择。
可以在一个类中定义另一个类,嵌套类也称为成员类。
class Foo
{
private:
//Bar是嵌套在Foo中的成员类
class Bar{
...
};
};
优点:当前套类只能在被嵌套类中使用时很有用,将其置于被嵌套类作用域作为被嵌套类的成员不会污染其他作用域同名类。可在被嵌套类中前置声明嵌套类,在.cc文件中定义嵌套类,避免在被嵌套类中包含嵌套类的定义,因为嵌套类的定义通常只与实现。
缺点:只能在被嵌套类的定义中才能前置声明嵌套类。因此任何使用Foo::Bar*指针的头文件必须包含整个Foo声明。
结论:不要将嵌套类定义为public除非它们是接口的一部分。
3)非成员函数(Nonmember),静态成员函数(static Member)和全局函数(Global Functions)
使用命名空间中的非成员函数或者静态成员函数,尽量不要使用全局函数。
优点:某些情况下,非成员函数和静态成员函数是非常有用的,将非成员函数置于命名空间中可避免对全局作用域的污染。
缺点:将非成员函数和静态成员函数作为新类的成员或许更有意义,当他们需要访问外部资源或具有重要依赖时更是如此。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
解析出c++中的内部链接与外部链接_学习笔记
2 作用域
静态变量和静态函数
C++??static、const和static?const?以及它们的初始化_Heart...
类中的静态成员函数有什么大的作用吗? - C/C / C 语言
关键字static总结
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服