gpt4 book ai didi

c++ - c++继承模板类的构造函数

转载 作者:行者123 更新时间:2023-11-30 00:52:01 26 4
gpt4 key购买 nike

在 C++11 中,可以继承构造函数。我有以下代码(重现示例),无法编译:

template<class T> class A
{
...
}

template<class T> class B : public A<T>
{
public:
B(int a, int b = 0);
}
template<class T> B::B(int a, int b /* =0 */)
{
...
}

class C : public B<int>
{
public:
using B::B;
}

下面的代码没有运行,错误是 C 没有构造函数,即来自 B 的那个没有被继承:

C obj(5);
//or
C obj(5, 3);

最佳答案

Visual Studio 2013 支持继承构造函数。参见 Support For C++11 Features了解更多信息。这是相关部分:

C++11 Core Language Features

  • inheriting constructors
    • Visual Studio 2010: No
    • Visual Studio 2012: No
    • Visual Studio 2013: No

更新

看起来对继承构造函数的支持是 added in the November 2013 CTP (帽子提示:@yngum)

关于c++ - c++继承模板类的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20062250/

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