作者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