网站开发后台用什么,广州商城网站制作网站,最早做淘宝客的网站,psd免费素材网一、内部类的概念
如果一个类定义在另一个类的内部#xff0c;那么这个类就叫做内部类。#xff08;内部类其实和一个独立的类没有区别#xff0c;只是它会受到外部类访问限定符以及类域的限制#xff0c;且是外部类的友元#xff09;
如果B类是A类的内部类#xff0c;…一、内部类的概念
如果一个类定义在另一个类的内部那么这个类就叫做内部类。内部类其实和一个独立的类没有区别只是它会受到外部类访问限定符以及类域的限制且是外部类的友元
如果B类是A类的内部类sizeof(A)的结果与B类无关。
二、内部类的性质
1.内部类受外部类的访问限定符和类域限制
受到访问限定符限制内部类B是定义在外部类A的私有访问限定符内不能直接访问内部类
class A {
private:int _a1 1;int _a2 1;
private:class B {private: int _b1 1;int _b2 1;};
};
int main()
{//A::B b1;//编译器报错return 0;
}
受到类域限制内部类B在实例化对象时受到A类域的限制
class A {
private:int _a1 1;int _a2 1;static int _a3;//类内声明
public:class B {private: int _b1 1;int _b2 1;};
};
int A::_a3 1;//类外初始化
int main()
{//B b1;//错误写法A::B b1;//正确写法return 0;
}
2.内部类天生是外部类的友元类
内部类可以访问外部类的私有和保护成员
class A {
private:int _a1 1;int _a2 1;
private:class B {private: int _b1 1;int _b2 1;public:void Print(A* ptra){cout ptra-_a1 ptra-_a2 endl;}};
};3.内部类访问外部类的静态成员时不需要外部类的对象或类名
内部类访问外部类的普通成员时需要通过外部类的对象或者类访问但是内部类访问外部类的静态成员时可以直接访问无需外部类对象或者类
class A {
private:int _a1 1;int _a2 1;static int _a3;//类内声明
private:class B {private: int _b1 1;int _b2 1;public:void Print(){cout _a3 endl;}};
};
int A::_a3 1;//类外初始化