现代 C++ 基础:
而不是堆或静态全局范围的基于堆栈的大小。
而不是显式类型名称的自动类型推理。
而不是原始指针的智能指针。
std::string 和 std::wstring 类型 (请参见 <string>) 而不是原始的 char[] 数组。
标准模板库 (STL) 容器希望 vector、list和 map 而不是原始数组或自定义容器。 请参见 <vector>、 <list> 和 <map>。
而不是手动编码的那些的 STL 算法。
异常,对报告和处理错误条件。
使用 STL std::atomic<> 的无锁的线程间的通信 (请参见 <atomic>) 而不是其他线程间的通信机制。
而不是单独实现小函数的内联 lambda 函数 。
基于范围为循环将与数组、STL 容器和 Windows 运行时 集合使用在窗体 for (for-range-declaration :expression )编写更可靠的循环。 这是核心语言支持的一部分。 有关更多信息,请参见 基于范围的 for 语句 (C++)。
Visual C++ 接口可定义如下:
可以从零个或多个基接口继承。
无法从基类继承。
只能包含公共,纯虚方法。
不能包含构造函数、析构函数或运算符。
不能包含静态方法。
不能包含数据成员;属性允许的。
接口可以包含功能、事件和属性的说明。 所有接口成员具有公共可访问性。 接口也可以包含静态数据成员、函数、事件和属性,并且,这些静态成员在接口必须定义。
接口定义类如何实现。 接口不是类,而类只能实现接口。 当类定义接口中声明的函数,该函数实现,未被重写。 因此,名称查找不包括接口成员。
从接口派生的类或结构必须实现接口的所有成员。 当实现接口 名称时 还必须实现在 base_interface 的接口列表。