C++的进阶语法

最近复习一下语法,结合了以下三本工具书,记录一下有收获的点:

  • 《C++ Primer》
  • 《Effective C++》
  • 《More Effective C++》

封装

重载

个人认为,重载是C++区别于C的三大特性(封装,继承,多态)中属于封装的重要特性之一,注意,重载(Overloading)是一种封装(Encapsulation)的概念而非多态,它允许在同一个作用域内使用相同的名称,但是参数列表不同的函数或方法。

重载 是一种封装的概念,它提供了一种通过相同的名称执行不同操作的机制,提高了函数或方法的可用性和易用性。
多态 是面向对象编程的一个特性,它允许不同的对象对相同的消息做出不同的响应,提高了代码的灵活性和可扩展性。

下面介绍一些重载的高阶用法:

转换构造函数

内容略

模板(Template)

模板实参推断过程中的类型转换

这也是指针和引用的重大区别之一!!!就是在函数模板实参推断过程中是否允许类型转换!!!

模板的显式具体化