0
我有父類「Entry」,它有兩個childern,Income和Expense。我想能夠有這樣的功能:將父對象的引用傳遞給想要子對象的函數
bool SomeObject::removeEntry(Entry& item, list<Entry> *l)
{
if (l==&incomeHis)
return removeIncome(item);
if (l==&expHis)
return removeExp(item);
}
這可能嗎?函數removeExp()
需要類Expense
的對象。由於我通過引用傳遞它,我知道它應該沒問題,但編譯器不同意。
你真的是指父母和孩子,或者是從基類派生的那兩個?這是一個區別。 – nvoigt
您可以將派生類傳遞給期望基類的函數,但不能反過來。 –
您可以通過使用'dynamic_cast'來實現這一點 - 但它看起來非常像一個糟糕的設計決定。你需要什麼樣的功能?我希望它不是'std :: list '因爲那時它不包含收入和費用。 –