У меня есть класс Grandparent
, который предоставляется библиотекой. Я хотел бы определить интерфейс для подклассов Grandparent
, поэтому я создал абстрактный подкласс с именем Parent
:
class Grandparent {
public:
Grandparent(const char*, const char*);
};
class Parent : public Grandparent {
public:
virtual int DoSomething() = 0;
};
Конструктор для Grandparent
принимает два аргумента. Мне бы хотелось, чтобы мой дочерний класс Child
также имел конструктор с двумя аргументами и просто передавал их конструктору для Grandparent
… что-то вроде
class Child : public Parent {
public:
Child(const char *string1, const char *string2)
: Grandparent(string1, string2)
{}
virtual int DoSomething() { return 5; }
};
Конечно, конструктор Child
не может вызвать конструктор класса своего прародителя, только конструктор его родительского класса. Но так как Parent
не может иметь конструктора, как я могу передать эти значения конструктору дедушки?