如何实现X
构造函数并使用可变参数列表初始化Base
类?模板继承和可变参数
#include<cstdarg>
class A
{
private:
int m_a;
public:
A(int a): m_a(a) {}
};
class B: public A
{
private:
int m_b;
public:
B(int a, int b):A(a), m_b(b){}
};
template <class Base>
class X: public Base
{
public:
//X(...):Base(...)
};
int main()
{
X<A> x(7)
X<B> x(3,5);
return 0;
}
我不允许修改A
,B
类。 不能使用C++ 11或更高的标准
对'X'使用两个不同的构造函数怎么样? –
然后他们两个需要同时与A和B兼容。 (如果我理解你的建议权利) – ataman
不,你可以有一个带有单个参数的构造函数和带两个参数的构造函数。然后使用适当的一个。由于'X'是一个模板,只有你使用的成员将被实例化。 –