发布网友 发布时间:2024-12-05 19:47
共2个回答
热心网友 时间:2024-12-05 20:04
各构造函数时互不相干的。
假如类名为 A。那么:
A(); //无参构造函数
A(const A& other); //拷贝构造函数
//其实重要的还有一个赋值运算符重载和析构函数,在这就不赘述了,其他参数的构造函数不做讨论
当进行的是这样时:A a, b; 这调用的是无参构造函数
当进行的是这样时:
A a;
A b(a); 构造a调用的是无参构造函数,构造b则调用的是拷贝构造函数。另外,当你写的函数的返回值为A类的对象(非引用)时,系统也会自动调用拷贝构造函数。
总之,每个类的对象在构造时会调用且仅仅调用一次构造函数,至于调用的具体是哪个构造函数,则要视代码情况而定了。
希望我的解释对楼主有用。
热心网友 时间:2024-12-05 20:04
根据实例化对象的方式会自动选择对应的构造函数。各构造函数互不相关。
所以当你删除复制构造函数中的count++后, point b(a); 就不会 count++ 了。