Lab 8
Lab 8
Course Name
Object Oriented Programming
Group Members
Muhammad Taha (455060)
Muhammad Hassan (466063)
EXPERIMENT NO 8
Multiple Inheritance
INTRODUCTION
The following lab aims at building a good rear concept on inheritance, especially the
diamond problem that is encountered. This problem will truly enhance the concept
of inheritance.
Multiple inheritance is the main key concept allocated within the package of
inheritance. While there is also multilevel and hierarchical which do not need to be
introduced.
Objectives
To learn what is Multiple Inheritance
Understand and solve the diamond problem due to Multiple
Inheritance
Equipment required:
Visual Studio/ Dev C++
Description
For example,
• Petrol is derived from both liquid and fuel.
class base_class1
properties;
methods;
};
class base_class2
properties;
methods;
};
properties; methods;
};
properties;
methods;
};
The Output should be similar as shown:
TASK A
CODE
#include <iostream>
using namespace std;
// Base class A
class A {
public:
int data = 100;
void displayA() {
cout << "Normal Access Base1 class Data = " << data << endl;
}
};
// Base class B
class B {
public:
int data = 200;
void displayB() {
cout << "Normal Access Base2 class Data = " << data << endl;
}
};
public:
int main() {
A obj1;
B obj2;
C obj3;
obj1.displayA(); // Accessing function from class A
obj2.displayB(); // Accessing function from class B
obj3.displayC(); // Accessing function from class C
cout << endl <<"Extracting base1 data via derived class: " << endl;
obj3.displayA();
cout << endl <<"Extracting base2 data via derived class: " << endl;
obj3.displayB();
return 0;
}
OUTPUT SNIPET
TASK B
CODE
#include <iostream>
using namespace std;
//
OUTPUT SNIPPET
class teraBaap {
public:
int sata = 10;
void DisplayDaddy()
{
cout<<"Tera Baap hun mein "<<sata<<endl;
}
};
// Base class A
class A : virtual public teraBaap{
public:
int data = 100;
void displayA() {
cout << "Normal Access Base1 class Data = " << data << endl;
}
};
// Base class B
class B : virtual public teraBaap{
public:
int data = 200;
void displayB() {
cout << "Normal Access Base2 class Data = " << data << endl;
}
};
int main() {
TeachingAssistant assistantAli;
cout << "Age is: " << assistantAli.personAge << endl;
cout << "Student ID is: " << assistantAli.studentID << endl;
cout << "Faculty ID is: " << assistantAli.facultyID << endl;
cout << "Assistant ID is: " << assistantAli.assistantID << endl;
return 0;
}
OUTPUT SNIPPET
CONCLUSION
In this lab, we examined the concept of multiple inheritance in C++, which
allows a class to derive properties and behaviors from more than one base
class. This technique offers a versatile approach to integrating functionalities
from diverse sources, promoting flexibility and modular design in software
development.