Effective C++ 条款6:
不想使用编译器提供的默认函数,就该明确拒绝
书上举例,一个class Home{..};如果希望他不具备复制的功能,应该声明一个显示的复制函数,然后这个复制函数位于private,然后不去定义这个复制函数。这样就可以防止对象的复制
~~~啊~~~
在看这本书以前,我遇到过类似的问题,一个类class Video{...};这个类要求不能被复制,也不能用=号,然后我当时采用的办法是定义一个=重载,然后什么都不做
public:
firend void operator=(const Video&) //声明,在共有部分
void Video::operator=(const Video&) //定义,这个函数什么都没做
{
}
当时我使用这个类的时候没遇到什么问题,然后今天看了Effective C++提供的方法,我想问下,我的这种处理是否存在潜在的风险
不想使用编译器提供的默认函数,就该明确拒绝
书上举例,一个class Home{..};如果希望他不具备复制的功能,应该声明一个显示的复制函数,然后这个复制函数位于private,然后不去定义这个复制函数。这样就可以防止对象的复制
~~~啊~~~
在看这本书以前,我遇到过类似的问题,一个类class Video{...};这个类要求不能被复制,也不能用=号,然后我当时采用的办法是定义一个=重载,然后什么都不做
public:
firend void operator=(const Video&) //声明,在共有部分
void Video::operator=(const Video&) //定义,这个函数什么都没做
{
}
当时我使用这个类的时候没遇到什么问题,然后今天看了Effective C++提供的方法,我想问下,我的这种处理是否存在潜在的风险
