内部类
内部类就像这个类的一个成员函数,所以内部类有权访问外部类内容(包括private内容)。但是内部类就相当于在一个作用域内定义了一个类,这个作用域内的其他变量是无权访问这个类的。
class Out{
public :
void Fun ()
{
nested object; // 这个函数不能通过
object.b_ = 1;
}
private:
class nested{
void Fun2()
{
Out object;
object._a = 1; // 这个函数可以编译过通过
}
int b_;
}
int a_;
}
内部类前置声明
c++不允许内部类型的前置声明,这个内部类型包括 内部类 与 内部typedef类型
class Container::Iterator;
void Fun(Container::Iterator iter)
{
// 编译报错
}
class Container {
class Iterator{
}
}
2 :
class Container::Iterator;
void Fun(Container::Iterator iter)
{
// 编译报错
}
class CC_Iterator{
}
class Container {
typedef CC_Iterator Iterator;
}