У вас проблема в том, что mystruct
является одновременно базовым классом и членом School
.Не ошибка, но немного странно.Поскольку ваш вопрос касается производных классов, я проигнорирую переменную-член.
Вы вызываете конструктор для mystruct
из конструктора для School
.Например,
struct mystruct{
public:
mystruct(string n, int a) : name(n), age(a) {}
string name;
int age;
};
class School : public mystruct {
public:
School(string name, int age, bool s, int m) :
mystruct(name, age), // call to the base class constructor
status(s), major(m) {}
private:
bool status;
int major;
}
Дизайн вашего класса очень странный.Школа - это (предположительно) группа учеников, но ваш дизайн, кажется, учитывает только одного ученика.Это нужно исправить, прежде чем идти дальше.
Есть техническая проблема (как вызвать конструктор базового класса), на которую я ответил здесь.Но не позволяйте этому думать, что вы решили проблему class design , которая на самом деле намного сложнее.Ваша программа никогда не будет правильной, пока у вас не будет разумного замысла.