gpt4 book ai didi

c++ - 在派生类中使用模板基类模板构造函数

转载 作者:行者123 更新时间:2023-12-04 07:23:18 25 4
gpt4 key购买 nike

我知道您可以在派生类中使用基类的构造函数,例如

class A {
public:
A() {};
}

class B : public A {
public:
using A::A;
}
此外,您可以使用模板基类中的构造函数,例如
template<typename T>
class A {
public:
A() {};
}

template<typename T>
class B : public A<T> {
public:
using A<T>::A;
}
假设类 A 现在有一个模板函数作为构造函数:
template<typename T1>
class A {
public:
template<typename T2>
A() {};
}

template<typename T1>
class B : public A<T1> {
public:
using A<T1>::A; // nope
using A<T1>::A<>; // neither
template<typename T2> using A<T1>::A<T2>; // sounds good, doesn't work

}
如何在派生类中使用基类构造函数?

最佳答案

两件事情:

  • template<typename T2> A() {}不能用作构造函数,因为无法推导出 T2 .
  • 您一次只能继承所有构造函数。你不能选择特定的。

  • 除此之外, using A<T1>::A;是正确的。

    关于c++ - 在派生类中使用模板基类模板构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68368421/

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