是否有任何方法可以從子類中調用父函數,但在函數中使用來自子代的數據而不是父代,例如。使用具有繼承類值的基類函數
#include <stdio.h>
class Base{
public:
int i=10;
virtual void print(){
printf("%i", i);
}
};
class Derived : public Base {
public:
int i = 20;
void print(){
Base::print();
}
};
int main(){
Derived I;
I.print();
}
所以我想這打印20而不是10基本上。
編輯::::::::::::
什麼我其實想做的是使用一個基類,它定義多種功能
virtual int OnExecute();
virtual bool OnInit();
virtual void OnEvent(SDL_Event* Event);
virtual void OnLoop();
virtual void OnRender();
virtual void OnCleanUp();
然後有一個派生類重載所有的這些功能exept OnExectue(),它看起來像這樣
if (OnInit() == 0){
return -1;
}
SDL_Event Event;
while (isRunning){
while (SDL_PollEvent(&Event)){
OnEvent(&Event);
}
OnLoop();
OnRender();
}
OnCleanUp();
那麼,有沒有在那裏我不會無需定義5個額外的功能來傳遞函數指針更簡單的方式。
這不會使Base :: print()不能用於Base對象嗎? – PhobicHD 2014-09-01 02:30:29
只是模式打印,已經更新。 – 2014-09-01 02:36:22