(假设我不能使用boost::noncopyable
专门为此目的设计的)
(假设我不能使用 C++11)
在使类不可复制时,我通常会看到以下语法:
class MyClass
{
public:
...
stuff
...
private:
MyClass(const MyClass&); // disables the copy constructor
MyClass& operator=(const MyClass&); // disables the copy assignment operator
};
这种语法似乎冗长。我认为我可以使用以下内容:
MyClass(MyClass&); // disables the copy constructor
void operator=(MyClass); // disables the copy assignment operator
这似乎更短(它只重复了类名 3 次而不是 4 次;它也省略了const
and &
)。
我的语法是否与其他语法完全相同?
有什么理由更喜欢其中一个吗?