我不確定這是否已經在某個地方得到了回答,或者我所問的是否可行。我對C++和OOP一般都不太熟悉,所以如果我提出的問題太明顯,請原諒我,因爲我的思想現在有點卡住了。 無論如何,我想處理的是:實例化對象時的C++純虛函數實現
我正在使用一個框架來處理應用程序的一些回調。 API有這些事件的類和回調函數作爲純虛函數。例如:
class A {
public:
A(){};
~A(){};
virtual void myCallback(){} = 0
};
在我的代碼,我實現這個回調,我有這樣的:在我的主要
class B : A {
public:
B(){
std::cout<<"I'm a ClassB object";
};
~B(){};
void myCallback(){
std::cout<<"Hello callback";
};
};
現在假設我有類似的東西:
int main(){
int x=1;
B objB;
//Do some stuff for a while
return 1;
}
我可以在實例化B對象時看到「我是ClassB對象」消息,並且可以在觸發事件「Hello回調」消息時看到。 所以我在這裏問的是我如何能夠在我的回調裏面獲得來自main的「x」的值?我可以在主內部重新實現回調嗎?你認爲我的方法是正確的嗎? 我想要的是通過擁有一個類B的對象在我的主內部實現純虛擬回調函數。或者甚至以某種方式在myCallback函數中獲取x的值。 我不確定我是否足夠清楚或者如果我搞砸了任何東西
FYI:'A(){};','〜A(){};''和'〜B() {};'都有多餘的分號。此外,'virtual void myCallback(){} = 0'顯然有一些不好的語法。 –
而'〜A(){}'應該是'虛擬的'。 – NathanOliver