adding a multiple level inheritance example

This commit is contained in:
Jidong Xiao
2023-12-04 02:05:42 -05:00
parent 5ff7b263d1
commit 7e65875444
2 changed files with 13 additions and 1 deletions

View File

@@ -180,12 +180,14 @@ Create a class hierarchy of geometric objects, such as: triangle, isosceles tria
rhombus, kite, trapezoid, circle, ellipse, etc. How should this hierarchy be arranged? What member variables and
member functions should be in each class?
## 26.10 Note: Multiple Inheritance
## 26.10 Multiple Inheritance
- When sketching a class hierarchy for geometric objects, you may have wanted to specify relationships that were more complex... in particular some objects may wish to inherit from more than one base class.
- This is called multiple inheritance and can make many implementation details significantly more hairy. Different programming languages offer different variations of multiple inheritance.
- See [example 1](multiple_inheritance1.cpp) and [example 2](multiple_inheritance2.cpp).
- And see [example 3](multiple_level_inheritance.cpp) for a multiple level inheritance example.
## 26.11 Introduction to Polymorphism
- Lets consider a small class hierarchy version of polygonal objects:

View File

@@ -1,3 +1,7 @@
#include <iostream>
// multiple-level inheritance
class A
{
public:
@@ -20,9 +24,15 @@ public:
class D:public C
{
public:
D(int a, int b, int c, int d):C(a,b,c),d(d){}
void print(){
std::cout << a << ":" << b << ":" << c << ":" << d << std::endl;
}
int d;
};
int main(){
D dObject(1,2,3,4);
dObject.print();
return 0;
}