这是一个通用的面向对象编程问题:
假设我有一个基类 B:
class B {
// member functions
}
并假设我被告知通过以下工厂方法创建 B 的实例:
B createB(/* arguments */) {
b = ...
return b;
}
现在,问题是我需要从 B 派生,但我将如何像 createB() 那样初始化它?:
class D : B {
D() {
/* need to use createB() to
initialize the base because
no equivalent constructor
exists. */
}
}