- 发生拷贝构造的情况:
Person lady_a("alice"); //创建一个对象lady_a Person lady_b = lady_a; // 发生拷贝构造 Person lady_c (lady_a); //发生拷贝构造
- 类的静态成员变量只是声明,必须还要再定义一下才行。否则链接器找不到静态变量在哪里,也就无法操作他。
class A { public : A(){} ~A(){} static int x; void set(par){x = par;} void get(){cout << x << endl;} } int A::x; //在类中的只是声明,还没有分配内存,需要加上这行定义去分配内存。然后才能使用。在这条语句给静态成员变量赋值也是可以的 void main() { A a; a.set(10); a.get(); }
initialization list 只能对非静态成员变量初始化。