【发布时间】:2012-11-12 11:37:32
【问题描述】:
我有一个基类和多个派生类。每个派生类都有一个构造函数,它接受在基类中初始化的参数。所有的构造函数都是不同的,但是它们都接受一个公共参数,我们称之为Name。
有没有办法让我以比一个接一个地调用它们更短的方式显示每个派生类的名称?
这是一个例子。假设我的基类是Father,派生类是Brother, Sister, HalfBrother, HalfSister,这是我的驱动程序文件:
cout << Brother::Brother().getName() << endl
<< Sister::Sister().getNAme() << endl
<< HalfBrother::HalfBrother().getNAme() << endl
<< HalfSister::HalfSister().getName() << endl;
这会很好地返回它们,但是有没有更简单的方法可以做到这一点,以便我可以从所有派生类中获取所有名称,而不必一个一个地编写它们?
【问题讨论】:
-
我不认为我们可以这样做,但如果我们使用 super() 或类似的东西,那么它可能是可能的。我正在等待您的问题的答复(答案)。
-
你为什么要构造临时对象来打印它们的名称,这个通用参数名称在哪里 - 我看到它们没有带任何参数?
-
为什么不在Father 中创建
getName()方法?通过这样做,您只是遍历您的父亲引用/指针列表并调用father->getName() -
这些名称是特定于类还是特定于您创建的各个对象?
标签: c++ inheritance multiple-inheritance