c++技巧----嵌套类
帐 号: 注册帐号
密 码:  找回密码
      记住用户名和密码
c++技巧----嵌套类

当作为其包含类的友元来声明一个嵌套类时,你应当将友元声明放于嵌套类声明的后面,而不是前面:

class A {private: int i;public: class B /*先定义嵌套类*/ {  public:  B(A & a) { a.i=0;};  }; friend class B;/*友元声明*/ };

  如果你把友元声明放置于嵌套类声明之前,编译器将丢弃友元声明,因为编译器还没有见过它,不知道它是什么玩意儿。


注:关于嵌套类定义

A nested class is any class whose declaration occurs within the body of another class or interface. A top level class is a class that is not a nested class.

一个 class A 如果定义在了另一个 class B 或 interface B 里,那么这个 class A 就是 nested class,class B 或 interface B 则被称为 enclosing class。至于 class A 是定义在了 class B 或 interface B 的什么地方,例如 method 和 constructor,则是没有限制的。

copyright:2016-2020|邮箱:imalib@vip.163.com

蜀ICP备16020986号