#include <iostream> using namespace std; class myit { public: static int num; class itit { }; }; ; template <class T> class my { public: T * p; T t; //加上typename表示根据里面的类型创建一个指针 //如果不加上typename则会理解成*号 typename T::itit *x; }; void main() { my<
类似于命名空间,一个类也是一个类命名空间.因此类嵌套的作用是帮助实现外层类,并且避免命名冲突. 对于命名空间(不再赘述可以参考<c++ prime plus>),其中定义的变量和函数的作用于在不加引用的情况下,是命名空间内,并且符合一般的访问控制.嵌套类也一样: 外层类可以用嵌套类定义对象,也可以定义他的指针.外层类使用内层类是符合一般类的访问权限控制,public:中的可以在外层访问等等.只有当嵌套被声明为public时,才可以在外层类的外部使用它,而且必须使用作用域限制符,比如:#
在一个类中定义的类被称为嵌套类,定义嵌套类的类被称为外部类.; //不能访问 mytest::i = 10;//不能访问 } private: class mytest { int i; int j; }; }; 不能直接访问mytest的成员,试着通过对象访问. class test { public: test() { cc.i = 10; //通过对象可以访问,如果i为私有则不可访问 } private: class mytest { public: int i; int j; }; my
C++嵌套类 1. 嵌套类的名字只在外围类可见. 2. 类的私有成员只有类的成员和友元可以访问,因此外围类不可以访问嵌套类的私有成员.嵌套类可以访问外围类的成员(通过对象.指针或者引用). 3. 一个好的嵌套类设计:嵌套类应该设成私有.嵌套类的成员和方法可以设为 public . 4. 嵌套类可以直接访问外围类的静态成员.类型名( typedef ).枚举值. // qiantaolei.cpp : Defines the entry point for the console