1、显示重写和覆盖
C++03中要重写基类的某个虚函数,那么子类中就要保证函数签名相同(函数名称、参数列表相同)。
C++11引入override标识符让编译器去检查基类中有没有相同签名的虚函数,如果没有则编译报错。
C++11还增加了final标识符防止基类或者基类的某个虚函数被继承。
#include "stdafx.h"
struct A1 final{};
//struct B1 : A1{}; error,A1 is final.
struct A2 {
virtual void f() final;
};
struct B2 : A2{
void f(); //error, f is final of A2.
};
2、明确默认和删除的特殊成员函数
a、明确默认的特殊成员函数:Constructor() = default;
b、明确删除的特殊成员函数:Constructor() = delete;
c、= delete指示符可以用来阻止任何函数被调用,可以用来禁止调用带特定参数的成员函数。
d、= delete指示符不能用于模板。
3、long long int 类型
C++11引入了一个新的整数类型long long int,它保证至少与long int 一样大,并且不少于64位。