实现一个不能被copy的类
1.先实现父类
- 一个类不能被copy,首先肯定是构造函数没有。
- 其次,拷贝构造不能有
- 赋值构造函数也不能有
基于这三点,就容易实现了。下边看看代码。
2.代码实现
先来看看基类,如下:
class UnCopyAble { public: UnCopyAble(const UnCopyAble &) = delete; UnCopyAble &operator=(const UnCopyAble &) = delete; UnCopyAble &operator=(const UnCopyAble &) const = delete; protected: UnCopyAble() = default; };
派生类就简单了,
class A : public UnCopyAble { } class B : public UnCopyAble { } class C : public UnCopyAble { }
小结
看过代码逻辑及实现流程,有没有觉得挺简单的。还是面向对象的基础,构造函数,拷贝构造函数,赋值操作符这些。抽空看看,时长思考下一些基础知识。