[問題] virtual & pure virtual
看板C_and_CPP (C/C++)作者godman362 (Shizuru)時間16年前 (2009/03/21 13:37)推噓1(1推 0噓 5→)留言6則, 2人參與討論串1/2 (看更多)
想問下列兩者(一、二)之間的差異:
一、
class Base
{
private :
int i;
public :
Base() : i(0) {}
virtual void show() = 0;
};
void Base::show() { cout <<" Show Func" <<endl; }
class Derived : public Base
{
};
二、
class Base
{
private :
int i;
public :
Base() : i(0) {}
virtual void show() { cout <<" Show Func" <<endl; };
};
class Derived : public Base
{
};
在第一個範例中,我將show寫成了pure virtual
但是我卻又再外面定義了show,所以我對第一個範例的認知會變成第二個範例
可是事實上卻不是如此
第一個範例不可以通過編譯,但是第二個可以
第二個很明顯可以,因為virtual有被Base類別定義,且不是pure virtual
不過難道被宣告成pure virtual之後,在外面所作的定義都不相等於第二個範例嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.118.54.55
推
03/21 13:46, , 1F
03/21 13:46, 1F
→
03/21 13:47, , 2F
03/21 13:47, 2F
→
03/21 13:48, , 3F
03/21 13:48, 3F
→
03/21 13:48, , 4F
03/21 13:48, 4F
→
03/21 14:23, , 5F
03/21 14:23, 5F
→
03/21 14:23, , 6F
03/21 14:23, 6F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章