Learn muduo - Part 11 Rethinking C++ Object Orientation and Virtual Functions
本系列是 《Linux 多线程服务端编程:使用 muduo C++ 网络库》 学习笔记。
Part 11: 反思 C++ 面向对象与虚函数
克制
- 克制使用继承。
- 可以有很简单的类,但不能有很复杂的类。
ABI
C++ 编译器 ABI(Application Binary Interface)主要内容包括以下几个方面:
- 函数参数传递的方式,比如 x86-64 用寄存器来传函数的前 4 个整数参数;
- 虚函数的调用方式,通常是 vptr/vtbl 机制,然后用
vtbl[offer]
来调用; - struct 和 class 的内存布局,通过偏移量来访问数据成员;
- name mangling;
- RTTI 和异常处理的实现。
动态库接口的推荐做法
1 |
|
1 |
|
printf
居然也能按位置输出
1 |
|
结果是:
1 |
|
Learn muduo - Part 11 Rethinking C++ Object Orientation and Virtual Functions
http://wasprime.github.io/Dev/Library/muduo/Learn-muduo-Part-11-Rethinking-C-Object-Orientation-and-Virtual-Functions/