作者taldehyde (阿肥)
看板EE_DSnP
标题[问题] 老师上传的function object的例子
时间Sat Oct 6 03:21:21 2012
class A
{
public:
A(int i = 0):_data(i) {}
virtual ~A() {}
virtual int operator ()(int i) const = 0;
protected:
int _data;
};
为什麽要宣告A的destructor为virtual
p3b的code照着范例宣告destructor为virtual之後反而compile不过
老师的范例倒是没有问题@@
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.251.160
1F:推 ric2k1:Base class 宣告 virtual destructor 这样 derived class 10/06 03:40
2F:→ ric2k1:的 destructor 才会被呼叫。如果没有写 virtual destructor 10/06 03:41
3F:→ ric2k1:但有定义 virtual functions, compiler 会给 warning, 10/06 03:42
4F:→ ric2k1:但不会 compile 不过。但有写 virtual destructor 应该再 10/06 03:43
5F:→ ric2k1:怎麽样也不会 compile 不过。请确定一下你是因为这个问题, 10/06 03:44
6F:→ ric2k1:也许 PO 一下 error message? 10/06 03:44
7F:→ ric2k1:我写的 funco3.cpp 有没有问题你可以 compile & run 看看! 10/06 03:45
8F:推 steve1012:Base class 有virtual function才需要virtual distructo 10/06 11:05
9F:→ steve1012:r的样子 10/06 11:05
10F:→ taldehyde:刚刚在试着加加看 结果瞬间compile过 10/07 04:43
11F:→ taldehyde: 可能是之前有多打空格吧... 10/07 04:43