1.初始化列表
Person():m_a(10),m_b(20),m_c(30){}
Person(int a,int b,int c):m_a(a),m_b(b),m_c(c){}
2.类对象作为类成员
1.当其他类对象作为本类成员,构造时候先构造类对象,再构造自身。
2.析构的顺序与构造相反
class A{}
class B
{
A a; 称a为对象成员
}
3.静态成员函数特点:
1.程序共享一个函数
2.静态成员函数只能访问静态成员变量
3.静态成员函数也是有访问权限的,如public protected private
4.两种访问方式
Person p1;
p1.fun(); 通过对象
Person::fun(); 通过类名
class Person
{
public:
static void func()
{
cout<<"static void func调用"<<endl;
m_A=100; //静态成员函数只能访问静态成员变量
m_B=200; //错误,程序不知道你要改具体哪个对象的m_B
}
static int m_A;
int m_B;
};
4.静态成员变量
1.必须在类外初始化才能使用
int Person::m_a=20;
5.成员变量 和 成员函数 是分开存储的
6. 非静态成员变量 属于类的对象 int m_a;
静态成员变量 不属于类的对象 static int m_b;
非静态成员函数 不属于类的对象 void fun(){}
静态成员函数 不属于类的对象 static void fun1(){}
7.空对象占用内存空间为:1 以便区分空对象占内存的位置。