我们说我有这个例子:
//Two interfaces
class InterfaceA {
public:
InterfaceA(int val);
};
class InterfaceB {
public:
InterfaceB(int val);
};
//Class with multiple inheritance
template <typename... Intefaces>
class Base : public Interfaces... {
public:
Base() : Interfaces(42) {}; // This is wrong
}
如何调用&#34;接口的构造函数&#34;有一个参数的类?
答案 0 :(得分:3)
正确的语法是
Base() : Interfaces(42)... {}
此处Interfaces(42)...
是带有模式Interfaces(42)
的包扩展,这意味着它会扩展为令牌列表,每个类型对应一个令牌,类似于Interfaces
替换为类型的模式。
有关更深入的说明,请参阅this link。