這是問題所在—我有兩個類是這樣的:指向繼承的類實例作爲函數參數
class A
{
//some fields and methods
void niceMethod();
};
class B : public A
{
void niceMethod();
};
class C : public A
{
void niceMethod();
};
和功能
void myFunc(A** arrayOfABC);
//雙*是注意到我要去修改論點。
我想做的事:
(*arrayOfABC)[i].niceMethod();
在我的功能,讓做不同的事情,當我經過燒烤或Cs的陣列的功能。
但後來我嘗試調用它像
B* bees = NULL;
myFunc(&bees);
我有「B的參數類型**是A型**的參數不兼容」。
我知道我可以將B或C作爲A傳遞給函數f(A),但指針有什麼問題?
這樣的事情可以接受嗎? 'B * bees = NULL; A * ptrs [] = {bees}; myFunc(ptrs);' –
不錯的解決方案,但我決定重新考慮我的projectc結構以避免這個問題。 –