class UnCopyable
{
public:
UnCopyable() = default;
~UnCopyable() = default;
private:
UnCopyable(const UnCopyable &);
UnCopyable& operator=(const UnCopyable &);
};
//我是独一无二的,我不能被复制
class MySelf:private UnCopyable
{
public:
MySelf(string na, int a) :m_strName(na), m_age(a)
{
}
void show()
{
cout << m_strName.c_str() << " " << m_age << endl;
}
private:
string m_strName;
int m_age;
};
void main()
{
MySelf self("Ty", 28);
self.show();
//MySelf self2(self); 报错
//self2.show();
system("pause");
}
巧妙使用UnCopyable类,阻止编译器自动生成的函数
于 2022-03-07 23:23:05 首次发布
该博客介绍了C++中如何实现类的不可复制性,通过定义私有的拷贝构造函数和赋值运算符来阻止对象的复制。示例中展示了`UnCopyable`基类和`MySelf`派生类的定义,`MySelf`类继承了不可复制性,确保其实例无法被复制。博客主要探讨了防止对象意外复制的重要性及其在内存管理和性能优化中的作用。

被折叠的 条评论
为什么被折叠?



