C++零碎记录

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.

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值