![]() |
1
5
我想你的NVI模式是错的: http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Non-Virtual_Interface 但不确定这是否能解决你的问题。
下面是一个示例,说明为什么可以使用从XML读取数据的读取器和从DB读取数据的读取器来执行此操作。注意,公共结构被移到NVI readFromSource中,而非公共行为被移到私有虚拟getrawdatam中。这样,只需要在一个函数中记录日志和检查错误。
|
![]() |
2
4
一部分
派生类可以插入
|
![]() |
3
2
当一个方法在基类中声明为virtual时,即使
如果你能摆脱
|
![]() |
4
1
您可以使用pimpl习惯用法来实现这一点:
现在其他人仍然可以子类
|
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |