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 '因为那时它不包含收入和费用。 –