Create classes `Student`, `Test`, `Sports`, and `Result` to demonstrate hybrid inheritance. Accept data and display total marks.
SOLUTION....
#include <iostream>
using namespace std;
// Base Class: Student
class Student {
protected:
int roll;
string name;
public:
void inputStudent() {
cout << "Enter Roll No: ";
cin >> roll;
cout << "Enter Name: ";
cin >> name;
}
void showStudent() {
cout << "Roll No: " << roll << endl;
cout << "Name: " << name << endl;
}
};
// Derived Class: Test (from Student)
class Test : public Student {
protected:
int marks1, marks2;
public:
void inputTest() {
cout << "Enter Marks in Subject 1: ";
cin >> marks1;
cout << "Enter Marks in Subject 2: ";
cin >> marks2;
}
void showTest() {
cout << "Subject 1 Marks: " << marks1 << endl;
cout << "Subject 2 Marks: " << marks2 << endl;
}
};
// Independent Base Class: Sports
class Sports {
protected:
int sportsMarks;
public:
void inputSports() {
cout << "Enter Sports Marks: ";
cin >> sportsMarks;
}
void showSports() {
cout << "Sports Marks: " << sportsMarks << endl;
}
};
// Derived Class: Result (Hybrid inheritance)
class Result : public Test, public Sports {
public:
void displayResult() {
int total = marks1 + marks2 + sportsMarks;
cout << "\n===== RESULT =====" << endl;
showStudent();
showTest();
showSports();
cout << "Total Marks: " << total << endl;
cout << "==================" << endl;
}
};
// Main Function
int main() {
Result r;
// Input data
r.inputStudent();
r.inputTest();
r.inputSports();
// Display result
r.displayResult();
return 0;
}
OUTPUT
