2 拷贝构造函数的调用时机
//等号右边都是对象的时候是拷贝,等号右边是数字是值的时候是构造;
1.一个对象给另外一个对象初始化时
1)Maker m1;
Maker m2=m1;
2)maker m3(m2);
2.实参个形参赋值
Void (maker m)
3.函数返回值
Maker ()
{
Return maker;
}
1)debug下调用拷贝
其他情况下不会调用,只是把return 出来的空间给出来
3构造函数调用的规则(写了构造必须要用)
1自己写了拷贝构造函数,编译器不会提供任何的构造函数
2自己写了有参构造函数,编译器不会提供无参数构造函数,提供拷贝构造函数
4多个对象的构造函数和析构函数的调用顺序
1先调用成员对象的构造函数(析构函数相反)
5深拷贝浅拷贝
浅拷贝:c++编译器只会简单的拷贝,如果在构造函数中出现了开辟空间,指针等操作注意使用深拷贝
深拷贝:拷贝指针指向的那块空间
6匿名对象
1匿名对象的生命周期在本行,对应匿名对象关键是要看接受他的时机
7C++类对象中成员函数和成员变量是分开存储的
1)普通成员变量