Files
BasicsOfComputerSoftwareEng…/OOP/test.cpp
2023-04-18 14:52:58 +08:00

60 lines
902 B
C++

#include <iostream>
class A {
protected:
int a;
public:
A(int _a) : a(_a) {
}
void display() {
std::cout << a << std::endl;
}
};
class B : virtual public A {
protected:
int b;
public:
B(int _a, int _b) : A(_a+1), b(_b) {
}
void display() {
A::display();
std::cout << b << std::endl;
}
};
class C : virtual public A {
protected:
int c;
public:
C(int _a, int _c) : A(_a + 2), c(_c) {
}
void display() {
A::display();
std::cout << c << std::endl;
}
};
class D : public B, public C {
protected:
int d;
public:
D(int _a, int _b, int _c, int _d) :A(_a), B(_a, _b), C(_a, _c), d(_d){};
void display() {
A::display();
B::display();
C::display();
std::cout << d << std::endl;
}
};
int main() {
D objD(1, 2, 3, 4);
objD.display();
return 0;
}