我使用的是类在库中,我们会打电话给LibraryClass<BaseClass>
那里LibraryClass<>
继承它的模板,像这样:
template<class BaseClass>
class LibraryClass
:
public BaseClass
{
...
此类完全满足我的要求,但是构造函数中存在错误。我试图创建这样的派生类:
template<class BaseClass>
class MyClass
:
public LibraryClass<BaseClass>
{
...
然后只需添加一个新的构造函数。但是,在构造函数MyClass()中,我需要调用不是直接父级的构造函数BaseClass()。如上所述,我不想调用LibraryClass(),因为它有一个错误。
我应该如何用一个新的构造函数创建这个新类?
我怀疑在一般情况下是否有符合标准的方法绕过父构造函数(如果存在这种情况,那么将如何确保父子对象保持可用状态?)
IMO修复bug的最好方法是更改LibraryClass
。
如果您不能这样做,则可以复制LibraryClass
并修复副本中的错误。这具有明显且潜在非常重大的缺点。
另一个可能的替代方法是调用错误的构造函数,然后修复该对象MyClass::MyClass
以解决该错误。此方法可能适用于您的情况,也可能无效。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句