Oop
https://youtu.be/32tDTD9UJCE
Back to Basics: Object-Oriented Programming - Jon Kalb - CppCon 2019
阅读笔记
Scope
本文覆盖的内容,OOP理论,设计指引,最佳实践
作者认为的OOP的定义
从头至尾用一个logger的例子来说明
liskov替换原则
下面这个违反了该原则,因为他没有做应该做的事情
对于继承的误解
用继承来实现代码重用是完全错误的
OOP里面的继承应该是描述的is-a的实现:基类定义接口,继承类实现接口
Scott挑战
如下用法是非法的
OOP其实是欺骗编译器,静态类型是没啥用的,因为静态类型几乎都不是动态类型
他给出的解决方案,其实就是:接口和实现的分离
NVI
他又说了一个他觉得好的做法
代码例子,下面的使用了nvi
他解释为什么要nvi
#
dtor需要是虚函数
override很重要
要留意Scoping
base的同名函数被继承类里面的函数遮住了,所以其实调用不到他
函数default参数不要乱搞
比如如下这个是有问题