i******t 发帖数: 22541 | 1 以下几点很迷糊
基类 纯虚函数 需要写个实现吗?
子类 纯虚函数 需要写个实现吗?
基类 虚函数 需要写个body吗?
子类 虚函数 需要写个body吗?
什么情况下 定义完了 必须写个实现
等等此类问题
对了 还有什么 纯虚构造 析构函数之类的
主要是 麻烦解释一下原因 现在看得有点迷糊
thx |
l***i 发帖数: 16 | 2 基类纯虚函数可以有实现也 可以没有
子类虚函数应该要实现,否则无法编译 |
r**h 发帖数: 1288 | 3 有实现了就不是纯虚函数了。。。
【在 l***i 的大作中提到】 : 基类纯虚函数可以有实现也 可以没有 : 子类虚函数应该要实现,否则无法编译
|
l***i 发帖数: 16 | 4 = 0 means derived classes must provide an implementation, not that the base
class can not provide an implementation.
请参见: http://stackoverflow.com/questions/2089083/pure-virtual-function-with-implementation
【在 r**h 的大作中提到】 : 有实现了就不是纯虚函数了。。。
|
i******t 发帖数: 22541 | 5 我看看这个链接
把这个理清楚一下
感觉各种组合很多很多啊
base
【在 l***i 的大作中提到】 : = 0 means derived classes must provide an implementation, not that the base : class can not provide an implementation. : 请参见: http://stackoverflow.com/questions/2089083/pure-virtual-function-with-implementation
|
r*********n 发帖数: 4553 | 6
two cases:
1. pure virtual destructor: yes, you have to provide a definition, although
it could be just an empty one. Otherwise cannot compile
2. other pure virtual member functions: you may or may not, both legal
you don't have to. If not and it's not pure virtual destructor, then the
derived class becomes abstract.
virtual function is just like normal function (non-template), you cannot
just declare it without defining it.
【在 i******t 的大作中提到】 : 以下几点很迷糊 : 基类 纯虚函数 需要写个实现吗? : 子类 纯虚函数 需要写个实现吗? : 基类 虚函数 需要写个body吗? : 子类 虚函数 需要写个body吗? : 什么情况下 定义完了 必须写个实现 : 等等此类问题 : 对了 还有什么 纯虚构造 析构函数之类的 : 主要是 麻烦解释一下原因 现在看得有点迷糊 : thx
|