NonCopyable 不能拷贝的类

chllcy chllcy 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
  
class NonCopyable
{
private:
NonCopyable(const NonCopyable&); // no implementation
NonCopyable& operator=(const NonCopyable&); // no implementation
public:
NonCopyable() { }
};

对于上面这个设计不是很明白,设计本意应该是不让使用拷贝构造函数和=赋值操作.但我下面这个还是可以啊
 
class DD:private NonCopyable
{
private:
int a;
public:

DD(){a=0;}
DD(int xx):a(xx){};
DD(const DD& xx){a=xx.a;}
DD& operator=(const DD& xx){a=xx.a;}
virtual ~DD(){};
void getA(){cout <<"a:"<< a << endl;};
};

DD xx,yy(1);
NonCopyable cc;
xx.getA();
xx=yy;
xx.getA();
cc=xx;//不行

只是对于cc=xx不行,但对于xx=yy还是可以的.不知道NonCopyable这个类的设计本意是什么.
...全文

相关推荐

C++封装互斥锁_条件变量.rar

本文介绍了C++中用于线程同步的Condition类,以及MutexLock互斥锁类和Thread线程类的设计。Condition类通过继承Noncopyable防止拷贝,使用pthread条件变量实

ACMer_Shadow

使用boost::noncopyable的示例程序

在C++编程中,有时我们希望禁止某个类的对象进行拷贝操作,以防止意外的拷贝行为导致程序逻辑错误。boost::noncopyable类是一个简单的基类,通过将拷贝构造函数和拷贝赋值运算符声明为私有,从而禁止了类的对象进行拷贝操作。通过使用boost::noncopyable类作为基类,并将基类声明为私有,我们可以确保派生类的对象无法进行拷贝操作。这在设计一些特定类型的类时非常有用,例如单例模式的类,我们不希望多次创建该类的对象。的类,并使用boost::noncopyable类将其声明为不可拷贝。

ZujbMl

[新C..标准:C..0x].(Overview.of.the.New.C..:C..0x).Scott.Meyers.文字版

,如拷贝构造函数、赋值运算符等。

megamhf

Google开源风格指南学习笔记-c++代码规范

#### 拷贝和赋值构造函数的禁用技巧通过在私有部分声明拷贝构造函数和赋值操作符而不提供实现,可以有效地防止这些操作被调用,从而保护对象的完整性。

ztczll

boost程序库导论

- **noncopyable**:辅助类,用于禁止拷贝构造和赋值操作。- **addressof**:获取变量的地址。- **enable_if**:条件性地启用函数或类。

yuanwang1986
评论 11
收藏 已收藏
分享
返回顶部
chllcy
C++ 语言 65,214 成员 250,514 内容