Professional Documents
Culture Documents
Inheritance
Inheritance
Inheritance
Question 2
inheritance.cpp
#include<iostream>
class A {
private:
int a1;
int a2;
int *aPtr;
public:
int size;
A(int a1, int a2, int size, int value) {
this->a1 = a1;
this->a2 = a2;
this->size = size;
class D {
int d1;
int d2;
int *dPtr;
public:
int size;
D(int a1, int a2, int size, int value) {
this->d1 = a1;
this->d2 = a2;
this->size = size;
class B : public A
{
int b1;
int b2;
int *bPtr;
D d;
public:
B(int b1, int b2, int size, int value, int a1, int a2, int
sizeOfA, int valueForA, int d1, int d2, int sizeOfD, int valueForD)
: A(a1, a2, sizeOfA, valueForA), d(d1, d2, sizeOfD, valueForD)
{
this->b1 = b1;
this->b2 = b2;
cout<<endl;
}
B& operator=(const B& that) {
A::operator=(that);
b1 = that.b1;
b2 = that.b2;
size = that.size;
for(int i=0; i<size; i++) {
bPtr[i] = that.bPtr[i];
}
return *this;
}
~B() {
delete[] bPtr;
}
};
class C: public B {
int c1;
int c2;
int *cPtr;
public:
int size;
cout<<endl;
}
~C() {
delete[] cPtr;
}
};
int main() {
C c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
B b(4,4,4,4,4,4,4,4,4,4,4,4);
A a(3,3,3,3);
C see(2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2);
c = see;
c.display();
// c.display();
// b.display();
// a.display();
}