Заявление об ошибке:Как я могу создать экземпляры частных данных из двух базовых классов, определив конструктор производного класса?
Создайте базовый класс под названием Студент с фоллом. 2 поля: - (i) Название (ii) Id. Выведите 2 класса под названием Спорт и Экзамен со студенческого базового класса. Класс Sports имеет поле под названием s_grade и Класс Экзамен имеет поле, называемое e_grade, которые являются целыми полями. Выведите класс под названием «Результаты» , которые наследуются от спорта и экзамена. Этот класс имеет массив символов или строковое поле для представления конечного результата. Также он имеет функцию-член, называемую дисплеем, которая может использоваться для отображения окончательного результата . Проиллюстрируйте использование этих классов в основном.
#include<iostream>
#include<string>
using namespace std;
class Student
{
string name;
int id;
public:
Student(string n, int a) {name = n; id = a;}
void display()
{
cout<<"Student name: "<<name;
cout<<"\nStudent I.D.: "<<id;
}
};
class Sports : public Student
{
int s_grade;
public:
Sports(string n, int a,int s):Student(n,a) {s_grade = s;}
void display()
{
cout<<"\nSports grade: "<<s_grade;
}
};
class Exam: public Student
{
int e_grade;
public:
Exam(string n, int a,int e):Student(n,a) {e_grade = e;}
void display()
{
cout<<"\Exam grade: "<<e_grade;
}
};
class Results: public Sports, public Exam
{
string result;
public:
Results(string n,int i, int s, int e):Sports(n,i,s):Exam(n,i,e) {}
void display()
{
Student::display();
Sports::display();
Exam::display();
}
};
Это была моя попытка, но это довольно сильно испорчено.
Любые решения?
Любая помощь очень ценится.
1. Передайте строку как ссылку на константу. 2. Используйте списки инициализации. 3. В чем вопрос –
Вызов 'Student :: display();' не должен компилироваться, потому что он неоднозначен: класс 'Results' содержит * два экземпляра' Student' - один через 'Sports' и один через «Экзамен». – cdhowie
@cdhowie Я использовал виртуальное наследование, чтобы наследовать «Студент». Он все еще не компилируется. Что мне делать? –