1.C++标准化过程中,增加了命名空间的概念,将原来声明在全局空间下的标识符声明在了namespace std下,标准化之前的头文件带后缀名(.h、.hpp等),标准化后的头文件不带后缀名。
原有C语言头文件标准化后,头文件名称前带个c字母。
2.enum:可以隐式转化为整形,但整形不能隐式转化为enum
enum class:整形与enum均不能相互转化,同时相较于enum,增加了作用域与内部类型指定。
C++ enum枚举类型详解 (biancheng.net)
C++11枚举类型enum class_wangqingchuan92的博客-CSDN博客
C++11枚举类——enum class_Damon_liufb的博客-CSDN博客
3.#define:预处理阶段,不会在编译阶段未记入符号表,所以其相关报错也不能以符号标示,只会在报错中提到其替换值。另外,#define不重视作用域,即便在类内定义,对其后的编译过程即为可见的。
4.enum hack
C++的Enum hack_Lei_lz的博客-CSDN博客
enum(根据下面的例子猜想,可能是编译器确定值)与#define类似,无法取地址。
5.声明迭代器为const(const iter)相同于T* const,代表指针为常量。
6.
7.编译器会为空类生成默认构造函数、拷贝构造函数、拷贝赋值函数、析构函数。若是类内已经声明有参构造函数或者拷贝构造函数,则编译器不会再生成默认构造函数。
编译器为类生成的函数,只有被需要(调用),才会被编译器创建出来。
当类内有引用、常量成员变量时,以及基类贝构造函数和拷贝赋值函数为private时,编译器不会为类生成拷贝构造函数和拷贝赋值函数。
8.为驳回编译器自动为类创建不需要的构造函数,可将相应的成员函数声明为private(此时友元函数还是可以使用);为防止友元函数使用,可对构造函数只声明不定义(此时若使用,链接阶段会报错);为了在编译期能检查出错误,可以继承一个相应类型函数为private的基类。
9.
10.
11.
12.
C++ 智能指针的原理:auto_ptr、unique_ptr、shared_ptr、weak_ptr_爱喝酸奶!的博客-CSDN博客
C++智能指针auto_ptr、unique_ptr、shared_ptr、weak_prt详解_GodFishhh的博客-CSDN博客
13.
14.
切割问题指多态问题,父子类传递需要用到引用。
15.
16.
17.
18.
19.
20.
21.
22.将文件间的编译依存关系降至最低
(3条消息) 将文件间的编译依存关系降至最低_小咸鱼_的博客-CSDN博客
23.
24.
25.
26.
27.
28.
29.
30.
C++中的菱形继承问题详解_c++菱形继承_悲伤的鱼香肉丝er的博客-CSDN博客
31.
32.
33.
34.
35.
36.
37.
读书笔记 effective c++ Item 48 了解模板元编程 - HarlanC - 博客园 (cnblogs.com)
38.
39.