复制构造函数和operator =中不可复制的对象和异常

scd*_*dmb 3 c++ exception

我想让类的对象不可复制,所以我把copy构造函数和operator =放在私有部分.但是,一个类是此类的朋友,因此它可以访问私有方法.将throw异常放在copy构造函数和operator =中以确保不会复制对象是个好主意吗?

Mys*_*ial 6

使其不可复制的一种方法只是声明复制构造函数,但根本不实现它.如果有人试图使用它,那将在编译时强制链接器错误.

class foo
{
private:
    foo(const foo&); // not defined
    foo& operator=(const foo&); // not defined
};
Run Code Online (Sandbox Code Playgroud)