像这样从它的模板继承: template class LibraryClass : public -6ren">
gpt4 book ai didi

c++ - "Override"构造函数并调用祖父构造函数

转载 作者:搜寻专家 更新时间:2023-10-31 01:46:57 25 4
gpt4 key购买 nike

我正在使用库中的一个类,我们称之为 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"构造函数并调用祖父构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19952886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com