1、在类中,编译器分两步处理类,首先编译成员的申明,然后才轮到成员的函数体,所以我们可以随意的使用类中的成员,而不用在乎他在类中位置。
2、构造函数就是控制其对象初始化的过程,构造函数可以像重载函数一样定义多个。构造函数不能被const。
C++中的结构体与类的区别: (1)class中默认的成员访问权限是private的,而struct中则是public的。 (2)class继承默认是private继承,而从struct继承默认是public继承。
结构体的作用
- 在实际项目中,结构体是大量存在的。研发人员常使用结构体来封装一些属性来组成新的类型。由于C语言内部程序比较简单,研发人员通常使用结构体创造新的“属性”,其目的是简化运算。
- 结构体在函数中的作用不是简便,最主要的作用就是封装。封装的好处就是可以再次利用。让使用者不必关心这个是什么,只要根据定义使用就可以了。
3、
1 struct sale() 2 { 3 sale(const string &s, unsigned n, double p):bookNO(s),units(n,revenue(p*n)) 4 { 5 } // 构造函数, 6 string bookNO = ""; 7 unsigned units = 0; 8 double revenue = 0.0; 9 }
这里函数名和函数体之间的:后面的作用是初始化,相当于隐式的初始化了下面的变量。
4、对于类的静态成员,因为不属于任何一个对象,所以初始化并不在构造函数中,所以需要我们自动的去初始化静态成员。我们在类的外面初始化静态成员,且只能初始化一次。
类的静态成员可以用于某些场景而普通成员不可以
1 static Accout temp1; //正确,静态成员可以是不完全类 2 Accout *temp2; //正确,指针成员可以是不完全类 3 Accout temp3; //错误,数据成员必须是完全类型
1 static double initRate; 2 double interest; 3 void verify1(double = initRate); //正确,因为静态成员可以作为默认实参 4 void verify2(double = interest); //错误,因为非静态成员不能作为默认实参