Skip to the content.

方便的工具

https://github.com/andreasfertig/cppinsights : cppinsights

深度探索 C++ 对象模型

  1. 探索 Default Constructor
  2. 探索 Copy Constructor
    • 总的来说,当需要特殊处理一些事情的时候,那么就需要 non trivial implict constructor 的出现
    • 理解了 virtual inheritence 的时候再 section 5
    • 部分细节也需要好好整理清楚
  3. 程序转化语义学
    • NVR 的优化

注意项目

所以最好不要在 virtual function 中间使用 default parameter

- https://stackoverflow.com/questions/3533589/can-virtual-functions-have-default-parameters

参考 demo 为: docs/cpp/oop/virtual-default-parameter.cpp

也就是不要

析构函数可以声明为虚函数

这就是 effective cpp 中经常聊到的,析构函数

如果我们需要删除一个指向派生类的基类指针时, 应该把析构函数声明为虚函数。 事实上,只要一个类有可能会被其它类所继承, 就应该声明虚析构函数(哪怕该析构函数不执行任何操作)。**

虚函数可以为私有函数吗?

https://stackoverflow.com/questions/2170688/private-virtual-method-i

最好私有,这也是 effective cpp 中提到的,之所以作为 virtual

虚函数可以被内联吗?

似乎我们有一些概念,可以做一个表格来分析下

static virtual override default paarater private / public inline

成员/函数 const 和 friend 类型 explicit

default

各种元素的耦合都是什么关系

本站所有文章转发 CSDN 将按侵权追究法律责任,其它情况随意。