我正在使用库中的一个类,我们将其称为 LibraryClass<BaseClass>
哪里LibraryClass<>
像这样继承它的模板:
template<class BaseClass>
class LibraryClass
:
public BaseClass
{
...
这个类完全符合我的要求,但是构造函数中有一个错误。我正在尝试创建一个像这样的派生类:
template<class BaseClass>
class MyClass
:
public LibraryClass<BaseClass>
{
...
然后添加一个新的构造函数。但是,在构造函数 MyClass() 中,我需要调用构造函数 BaseClass(),它不是直接父级。如上所述,我不想调用 LibraryClass(),因为它有一个错误。
我应该如何用一个新的构造函数创建这个新类?
最佳答案
我怀疑在一般情况下是否有符合标准的方法来绕过父构造函数(如果存在这样的事情,那么如何确保父子对象保持可用状态?)
IMO 修复该错误的最佳方法是更改 LibraryClass
。
如果您做不到这一点,您可以复制 LibraryClass
并修复拷贝中的错误。这有明显且可能非常显着的缺点。
另一种可能的替代方法是调用有问题的构造函数,然后修复 MyClass::MyClass
中的对象以解决该错误。此方法可能适合您的情况,也可能不适用于您的情况。
关于c++ - "Override"构造函数并调用祖 parent 构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19952886/