C++ 类避免使用Copy构造函数和Copy Assignment操作符 在设计一个类时,有时我们不需要Copy构造函数和Copy Assignment操作符,即没必要将我们的对象作为副本,此时我们该怎么做呢? 若不声明这两个函数,则编译器会默认提供这两个函数为我们使用。 我们可以声
C++ 类避免使用Copy构造函数和Copy Assignment操作符
在设计一个类时,有时我们不需要Copy构造函数和Copy Assignment操作符,即没必要将我们的对象作为副本,此时我们该怎么做呢?
若不声明这两个函数,则编译器会默认提供这两个函数为我们使用。
我们可以声明一个Private的Copy构造函数和Copy Assignment操作符,以阻止编译器默认提供这两个函数供我们使用;但是这样也不是绝对安全的,,因为成员函数和友元仍可以使用该函数;
通常的做法是将这两个函数声明为private函数,而不实现它们,这样在有使用它们的时候将会出现连接错;
如:
class cUnCopy
{
protected:
cUnCopy(){};
~cUnCopy(){};
private:
cUnCopy(const cUnCopy &);
cUnCopy& operateor=(const cUnCopy &);
}
posted on