咳咳,继续Google的C++编码规范,感兴趣的可以看上一篇关于标识符使用的http://www.ubuntukylin.com/ukylin/forum.php?mod=viewthread&tid=6686
首先讲嵌套类(或者叫内部类),其形式如下
class Foo
{
private:
class Bar
{
...
};
};
虽然嵌套类可以是public的,但是这种情况下最好使用namespace,除非这个嵌套类是某个接口定义,比如包含一些被其他方法使用到的枚举定义
下面看看使用嵌套类有哪些优缺点:
优点是方便,尤其是这个嵌套类只需要在定义它的类里面使用的时候,嵌套类同样可以前向声明,无需在定义嵌套类的类声明中定义嵌套类的实现(这句话有点绕,意思就是Foo类的声明中可以只声明Bar类,然后在对应的C++源文件中定义实现);
缺点是嵌套类如果要前向声明的话(就是在头文件中只使用Foo::Bar *指针或者引用而无需完整的类定义)需要包含Foo类的完整声明头文件,如果头文件过大可能会影响编译速度