智能车制作
标题:
C++11新特性:defaulted 与 deleted的扩展
[打印本页]
作者:
Quixote
时间:
2015-11-4 17:44
标题:
C++11新特性:defaulted 与 deleted的扩展
本帖最后由 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;
};
作者:
头上两只角
时间:
2015-11-5 07:55
大神用的那个IDE。。。
作者:
Quixote
时间:
2015-11-5 13:56
头上两只角 发表于 2015-11-5 07:55
大神用的那个IDE。。。
vs与g++
作者:
头上两只角
时间:
2015-11-8 08:01
能发个G++下载链接吗???win8上能用吗???
作者:
Quixote
时间:
2015-11-8 18:34
头上两只角 发表于 2015-11-8 08:01
能发个G++下载链接吗???win8上能用吗???
没用win8……我用的debian,直接apt-get就好了
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2