Здравствуйте.
Возникла такая проблема:
template<typename Parent>
class Child : public Parent
{
public:
Child(/* здесь как-то надо передать параметры, требуемые конструктором Parent */)
: Parent(/* как передать сюда параметры? */)
{}
};
Как сделать шаблонный класс Child независимым от параметров конструктора предка?
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте.
А>Возникла такая проблема:
А>А>template<typename Parent>
А>class Child : public Parent
А>{
А>public:
А> Child(/* здесь как-то надо передать параметры, требуемые конструктором Parent */)
А> : Parent(/* как передать сюда параметры? */)
А> {}
А>};
[ccode]
А>
template<typename Parent>
class Child : public Parent
{
public:
Child(int j)
: Parent(j)
{};
};
[/ccode]
А>Как сделать шаблонный класс Child независимым от параметров конструктора предка?
в кострукторе Child() передай в Parent что-нибудь по умолчанию в моем случае кпримеру Parent(0)
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте.
А>Возникла такая проблема:
А>А>template<typename Parent>
А>class Child : public Parent
А>{
А>public:
А> Child(/* здесь как-то надо передать параметры, требуемые конструктором Parent */)
А> : Parent(/* как передать сюда параметры? */)
А> {}
А>};
А>
А>Как сделать шаблонный класс Child независимым от параметров конструктора предка?
Возмжно я неточно понял вопрос. Но я бы сказал что "никак". Конструктор предка требует параметры. Значит их ему нужно как-то передавать. Можно конечно какие-нить дефолтные значения, но тогда логина работы Parent может пострадать.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте.
А>Возникла такая проблема:
А>А>template<typename Parent>
А>class Child : public Parent
А>{
А>public:
А> Child(/* здесь как-то надо передать параметры, требуемые конструктором Parent */)
А> : Parent(/* как передать сюда параметры? */)
А> {}
А>};
А>
А>Как сделать шаблонный класс Child независимым от параметров конструктора предка?
Писал я темплайтные конструкторы. А покажи как не компилируется, и на чем. Еще метод const Parent& но это не чисто
вооще без проблем
struct B
{ B(int){}
};
template <class TB>
struct Child :public TB
{ template <class P1>
Child(P1 p1):TB(p1){}
};
Child<B> cb(9);