【发布时间】:2012-04-16 14:47:05
【问题描述】:
考虑一个继承自 Foo 和 Baz 的类 Waldo,即:
class Waldo : public Foo, public Baz {
...
};
当我创建一个新的 Waldo 实例时:
Waldo *w = new Waldo;
是否调用了 Foo 和 Baz 构造函数?如果默认情况下不调用它们,在类声明或 Waldo 构造函数的声明/定义中是否有一种简单的方法来强制调用它们?
(看起来我可能正在尝试进行构造函数链接,而据称 C++ 没有这样做。我不确定。)
我要做的是“注释”各种类声明,其中注释导致(除其他外)注释类的实例链接到注释类维护的列表中。例如,这让我可以遍历所有具有 Baz-nature 的对象列表,对它们应用特定操作,而不必担心我是否记得将实例添加到具有 Baz-nature 的对象列表中,因为构造函数自动完成。
【问题讨论】:
-
注意:这里使用
new是虚假的,你可以完美地说Waldo w;并且会创建一个Waldo的实例。
标签: c++ constructor multiple-inheritance