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

你可能感兴趣的:(C++新标准)