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位。
本文深入探讨了C++11带来的关键改进,包括重写和覆盖的增强、默认和删除特殊成员函数的机制,以及新增的long long int类型。通过示例代码,详细解释了override和final关键字的作用,以及如何使用=default和=delete来控制构造函数。
1770

被折叠的 条评论
为什么被折叠?



