虛函數最近,我才知道,在C++中的純虛函數可以有一個身體。C++純用身體
我知道虛函數體存在,因爲我想從派生類打電話給她,但我能做到這一點?
class Base{
int x;
public:
virtual void print()=0;
};
void Base::print(){
cout << x;
}
class Derived : public Base{
int y;
public:
void print(){
Base::print();
cout << y;
}
};
而結果將是:x的值,然後y的值?
我真的意味着函數庫:: print()函數就會知道,從功能得到派生類x的值????
@kol:你的編譯器 – rems4e
@kol:是的,他們可以有這甚至可以被調用的主體。:)「」有效C++」邁爾斯提到了一個純VIRTUA一個原因l函數有一個主體:實現這個純虛函數的派生類可以在他們的代碼中調用這個實現。如果兩個不同派生類的部分代碼是相似的,那麼即使該函數應該是純虛擬的,它在層次結構中向上移動也是有意義的。「 – lpapp
執行* what * exact的結果還有'Base :: print ()''不會從'Derived'中的函數中獲取任何值,因爲Derived沒有函數返回任何值 - 您可能需要重新編寫該部分的代碼。 – millimoose