C++新标准

C++11和 C++14的推出,新的技术,新的代码方式不断出现,码农需努力啊!

关键词 default

在 C++中,有4种特殊函数

构造函数,拷贝构造函数,析构函数,拷贝赋值函数

一个类即使不声明上述4个函数,当代码被编译并且需要时,编译器会自动生成.

构造函数一旦声明带参数的,需手动写一个空的函数体.

虚析构函数,在旧式0x 中通常都是为空函数.

....

这些函数都在源代码中存在!可能某些编译器会优化掉代码,但不确保所有编译器都会优化.

而 default 就是了为了解决这问题的.

例如:

class A{

public: A() =default;

A(const A&) = default;

virtual ~A()=default;

A& operator=(const A&) = default;

};

常用的是 A() = default; 和 virtual ~A()=default;

这样写比写一个空白函数更加优化;


关键词 delete

不允许访问某个函数,达到类似被删除的效果.其实针对的是拷贝构造函数,带参数的构造函数等.

例如

class A{

public: 

     A() = delete;

     A(int i){}

};

实际代码:

A a;//error

A b(2);//ok

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容