智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1564|回复: 4
打印 上一主题 下一主题

[软件类] C++11新特性:defaulted 与 deleted的扩展

[复制链接]

162

主题

2048

帖子

5

精华

超级版主

岳麓山没有车神

Rank: 10Rank: 10Rank: 10

积分
14920

论坛元老奖章优秀会员奖章活跃会员奖章论坛骨干奖章在线王奖章优秀版主奖章资源大师奖章

QQ
威望
6285
贡献
5963
兑换币
2581
注册时间
2013-11-14
在线时间
1336 小时
跳转到指定楼层
1#
发表于 2015-11-4 17:44:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Quixote 于 2015-11-4 17:45 编辑

本文只适合知道C++的人观看。了解、掌握、精通的大神们请轻喷~


源代码来自 boost


C++ 的类有四类特殊成员函数,它们分别是:默认构造函数、析构函数、拷贝构造函数以及拷贝赋值运算符。这些类的特殊成员函数负责创建、初始化、销毁,或者拷贝 类的对象。如果程序员没有显式地为一个类定义某个特殊成员函数,而又需要用到该特殊成员函数时,则编译器会隐式的为这个类生成一个默认的特殊成员函数。


比如在定义SerialPort类的话,对于operation=与SerialPort(const&)的需求可能意义不算大。如果将线程处理与数据处理相分离,那么就可以共享数据接口,但目前这个构思的重构,我想放到明年。因为暂时需求没这么大。


好了。话归原题,在C++11以前,为了防止 拷贝构造函数以及拷贝赋值运算符 这两种函数的复用。一般会私有继承一个类,或者自行定义成如下形式。
class noncopyable
  {
  protected:
      noncopyable() {}
      ~noncopyable() {}
  private:  // emphasize the following members are private
      noncopyable( const noncopyable& );
      noncopyable& operator=( const noncopyable& );
  };

而在C++11中,对如上的做法做了更清晰的更正,如下定义即可。
class noncopyable
  {
  protected:
      BOOST_CONSTEXPR noncopyable() = default;
      ~noncopyable() = default;
      noncopyable( const noncopyable& ) = delete;
      noncopyable& operator=( const noncopyable& ) = delete;
  };


回复

使用道具 举报

93

主题

1166

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
7879

论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章论坛骨干奖章

QQ
威望
4108
贡献
2161
兑换币
2705
注册时间
2013-8-14
在线时间
805 小时
2#
发表于 2015-11-5 07:55:44 | 只看该作者
大神用的那个IDE。。。
回复 支持 反对

使用道具 举报

162

主题

2048

帖子

5

精华

超级版主

岳麓山没有车神

Rank: 10Rank: 10Rank: 10

积分
14920

论坛元老奖章优秀会员奖章活跃会员奖章论坛骨干奖章在线王奖章优秀版主奖章资源大师奖章

QQ
威望
6285
贡献
5963
兑换币
2581
注册时间
2013-11-14
在线时间
1336 小时
3#
 楼主| 发表于 2015-11-5 13:56:26 | 只看该作者
头上两只角 发表于 2015-11-5 07:55
大神用的那个IDE。。。

vs与g++
回复 支持 反对

使用道具 举报

93

主题

1166

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
7879

论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章论坛骨干奖章

QQ
威望
4108
贡献
2161
兑换币
2705
注册时间
2013-8-14
在线时间
805 小时
4#
发表于 2015-11-8 08:01:32 | 只看该作者
能发个G++下载链接吗???win8上能用吗???
回复 支持 反对

使用道具 举报

162

主题

2048

帖子

5

精华

超级版主

岳麓山没有车神

Rank: 10Rank: 10Rank: 10

积分
14920

论坛元老奖章优秀会员奖章活跃会员奖章论坛骨干奖章在线王奖章优秀版主奖章资源大师奖章

QQ
威望
6285
贡献
5963
兑换币
2581
注册时间
2013-11-14
在线时间
1336 小时
5#
 楼主| 发表于 2015-11-8 18:34:05 | 只看该作者
头上两只角 发表于 2015-11-8 08:01
能发个G++下载链接吗???win8上能用吗???

没用win8……我用的debian,直接apt-get就好了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-27 15:01 , Processed in 0.119269 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表