一文弄懂C++的内部类

内部类

  • 内部类概念
    • 内部类特性

内部类概念

如果一个类定义在另一个类的内部,这个内部的类,叫做内部类。
内部类是一个独立的类,它不属于外部类,更不能通过外部类的对象去访问内部类的成员。外部类对内部类没有任何优越的访问权限。

内部类特性

  • 内部类是外部类的友元类,但是外部类不是内部类的友元。(即内部类可以访问外部类)。
  • 内部类定义在外部类的public、protected、private()都是可以的;但是内部类受这些限制符的限定。
  • 注意内部类可以直接访问外部类种的static成员,不需要外部类的对象/类名。
class A
{
	class B    // 内部类
	{
	public:
		void Print()
		{
			A t1;
			cout << static_a << endl;  // 内部类访问静态成员,可以突破类域进行访问
			cout << A::_a << endl;   //  报错
			cout << t1._a << endl;   //而普通成员只能通过对象进行访问
		}
	};

private:    //定义在A类下的成员变量
	int _a;
	static int static_a;
};
  • 在类外定义内部类,受外部类的限制。
int main()
{

	A::B t2;
	t2.Print();

	return 0;
}
  • sizeof(外部类) = 外部类,和内部类无关。(不算静态成员)
int main()
{

	cout << sizeof(A) << endl;  // 4字节
	//注意静态成员不计入里面。

	return 0;
}

你可能感兴趣的:(C++,c++,开发语言,算法)