值语义:由一个对象构造另一个对象,生成了新的对象。之后两者无关联。
对象语义:指向同一个对象(共享)。(引用)(禁止对象拷贝)
/**
*
* @brief 复制构造函数以及赋值符号(=)均被设置为私有
* 其他类继承该类,却不能进行对象的复制。
*
*/
class NoCopyable{
public:
NoCopyable(){}
~NoCopyable(){}
private:
NoCopyable(const NoCopyable&){}
const NoCopyable& operator = (const NoCopyable&){}
};
如果不设置为private,则可以写为:
NoCopyable(const NoCopyable&) = delete;
const NoCopyable& operator = (const NoCopyable&) = delete;
delete表明函数已删除。使用会报错:“尝试使用已删除的函数”
C++禁止对象拷贝
最新推荐文章于 2024-04-29 10:31:55 发布