直接上代码
- 方式一:(复制构造函数以及赋值符号(=)均被设置为私有化)
class Children{
public:
Children(){
cout<<"children()"<<endl;
};
~Children(){
cout<<"~children()"<<endl;
}
private:
Children(const Children&);
const Children&operator=(const Children&);
};
int main(){
Children c1;
Children c2=c1;
return 0;
}
当执行创建对象c1时,代码可以执行,当开始进行对象复制拷贝时就会报错;
- 方式二:(复制构造函数以及赋值符号(=)不需要设置为私有化,但需要加=delete表明函数已删除)
class Parent {
public:
Parent(){
cout<<"parent()"<<endl;
}
~Parent(){
cout<<"~parent()"<<endl;
}
Parent(const Parent&)=delete;
const Parent&operator=(const Parent&)=delete;
};
int main(){
Parent p1;
Parent p2 =p1;
return 0;
}
当执行创建对象p1时,代码可以执行,当开始进行对象复制拷贝时就会报错;