无法从隐式继承的超类构造函数C ++创建子类

时间:2019-06-10 01:00:55

标签: c++ c++11 templates inheritance

我有一个Scalable班:

template<typename T, int size>
class Scalable {
// implementation
protected:
    std::array<T, size> data;
}

和派生类Color

struct Color : Scalable<double, 3> {
// implementation
}

当我尝试做类似的事情

Scalable<double, 3> s;
Color c(s);

我知道

No matching constructor for initialization of 'Color'

我没有定义规则5中的任何函数,但是我认为由于ColorScalable,因此它可以使用隐式定义的副本构造函数。

这是否意味着我必须定义构造函数的每个子类

Subclass(const Scalable<T, n> & o)

即使没有多余的字段?

我还尝试添加using Scalable<double, 3>::Scalable;,但这没用。

0 个答案:

没有答案
相关问题