有时候,进行类体设计时,会发现某个类的对象是独一无二的,没有完全相同的对象,也就是对该类对象做副本没有任何意义.
因此,需要限制编译器自动生动的拷贝构造函数和赋值构造函数.一般参用下面的宏定义的方式进行限制,代码如下:
// A macro to disallow the copy constructor and operator= functions
// This should be used in the priavte:declarations for a class
#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
TypeName(const TypeName&); \
TypeName& operator=(const TypeName&)
class Test {
public:
Test(int t);
~Test();
private:
DISALLOW_COPY_AND_ASSIGN(Test);
};
参考:https://www.cnblogs.com/dwdxdy/archive/2012/07/16/2594113.html
本文探讨了在类体设计中,当对象独一无二且副本无意义时,如何通过宏定义DISALLOW_COPY_AND_ASSIGN限制编译器自动生成拷贝构造函数和赋值构造函数。介绍了具体代码实现及参考链接。
2313

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



