我有一个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中的任何函数,但是我认为由于Color
是Scalable
,因此它可以使用隐式定义的副本构造函数。
这是否意味着我必须定义构造函数的每个子类
Subclass(const Scalable<T, n> & o)
即使没有多余的字段?
我还尝试添加using Scalable<double, 3>::Scalable;
,但这没用。