Предположим, что у каждого есть класс, производный от двух базовых классов.
class Derived : public Base1, public Base2 {
};
Чтобы создать / создать объект типа Derived
, моей первоначальной идеей было использование пакета параметров. Проблема в том, что я не знаю, как распределять аргументы между Base1
и Base2
соответственно.
template <typename... TArgs>
Derived(TArgs&&... args)
: Base1(/* what goes here? */)
, Base2(/* what goes here? */) {
}
Я заранее знаю, что Derived
наследуется только от двух базы классы. Мой вопрос заключается в том, есть ли у кого-то конструкция-путь, производная с синтаксисом, подобным приведенному ниже?
Derived d({arguments for Base1}, {arguments for Base2});
template <typename T1, typename T2>
Derived : Base1(T1), Base2(T2) {}
И, если возможно, тогда каковы требования к классам Base
?
Как Должны ли они принять аргументы конструкции?