«Параметры не являются примитивами».Итак, у вас есть что-то вроде этого?
class Param { /*...*/ };
class A {
public:
A(const Param& param1, const Param& param2, const Param& param3);
};
class B : public A {
public:
B();
private:
Param m_param1;
Param m_param2;
Param m_param3;
};
И вы хотите передать элементы B
конструктору A
.Как насчет этого?
class B_params {
protected:
B_params(int v1, int v2, int v3);
Param m_param1;
Param m_param2;
Param m_param3;
};
class B : private B_params, public A {
public:
B();
};
B_params::B_params(int v1, int v2, int v3)
: m_param1(v1), m_param2(v2), m_param3(v3) {}
B::B() : B_params(1,2,3), A(m_param1, m_param2, m_param3) {}
Просто убедитесь, что B_params
стоит перед A
в списке унаследованных B
классов.