C++ 程序设计 构造函数

来源:百度知道 编辑:UC知道 时间:2024/06/13 16:14:51
把构造函数声明为private,就能声明阻止生成默认的 拷贝构造函数 吗?
是不是因为不能实例话对象,也就不会用到 拷贝构造函数 呢?

拷贝构造和构造函数是2个概念,把构造函数私有化只是说不能创建新对象,并不是说不能去拷贝对象,要想阻止生成默认的拷贝构造函数,可以显示的将拷贝构造函数也声明为private的(类似于单件模式)

对楼上的补充说明:
对象对对象赋值--并不是调用拷贝构造函数,而是调用赋值函数
A a1;
A a2;
a1 = a2;//赋值
A a3 = a2;//拷贝构造

拷贝构造函数 用在用对象传参和返回对象还有对象对对象赋值上面时才会调用还有其他的情况我没讲,构造函数为private也不能阻止生成默认的,不过你可以自己定义一个就不会有默认生成了~