first git commit

This commit is contained in:
GandC 2024-05-02 23:16:53 +03:00
commit f6faa4eb2f
Signed by: gandc
GPG Key ID: 9F77B03D43C42CB4
2 changed files with 108 additions and 0 deletions

108
pr3-end.cpp Normal file
View File

@ -0,0 +1,108 @@
#include <iostream>
using namespace std;
class A1 {
protected:
int a1;
public:
A1(int V1 = 0) : a1(V1) { cout << "\nClass A1 constructor"; }
virtual void print() { cout << "\nVariable of A1 class"; }
virtual void show() { cout << "\na1 = " << a1; }
};
class A2 {
protected:
int a2;
public:
A2(int V1 = 0) : a2(V1) { cout << "\nClass A2 constructor"; }
virtual void print() { cout << "\nVariable of A2 class"; }
virtual void show() { cout << "\na2 = " << a2; }
};
class A3 {
protected:
int a3;
public:
A3(int V1 = 0) : a3(V1) { cout << "\nClass A3 constructor"; }
virtual void print() { cout << "\nVariable of A3 class"; }
virtual void show() { cout << "\na3 = " << a3; }
};
class B1 : virtual public A1, virtual public A3 {
protected:
int b1;
public:
B1(int V1 = 0, int V2 = 0) : A1(V1), A3(V2), b1(V1) { cout << "\nClass B1 constructor"; }
virtual void print() { cout << "\nVariable of B1 class"; }
virtual void show() { cout << "\nb1 = " << b1 << ", a1 = " << a1 << ", a3 = " << a3; }
};
class B2 : virtual public A2, virtual public A3 {
protected:
int b2;
public:
B2(int V1 = 0, int V2 = 0) : A2(V1), A3(V2), b2(V1) { cout << "\nClass B2 constructor"; }
virtual void print() { cout << "\nVariable of B2 class"; }
virtual void show() { cout << "\nb2 = " << b2 << ", a2 = " << a2 << ", a3 = " << a3; }
};
class C1 : virtual public B1, virtual public B2 {
protected:
int c1;
public:
C1(int V1 = 0, int V2 = 0, int V3 = 0) : A1(V1), B1(V1, V3), B2(V2, V3), c1(V1) { cout << "\nClass C1 constructor"; }
virtual void print() { cout << "\nVariable of C1 class"; }
virtual void show() { cout << "\nc1 = " << c1 << ", b1 = " << b1 << ", b2 = " << b2; }
};
class C2 : virtual public B1, virtual public B2 {
protected:
int c2;
public:
C2(int V1 = 0, int V2 = 0, int V3 = 0) : A1(V1), B1(V1, V3), B2(V2, V3), c2(V1) { cout << "\nClass C2 constructor"; }
virtual void print() { cout << "\nVariable of C2 class"; }
virtual void show() { cout << "\nc2 = " << c2 << ", b1 = " << b1 << ", b2 = " << b2; }
};
class C3 : virtual public B1, virtual public B2 {
protected:
int c3;
public:
C3(int V1 = 0, int V2 = 0, int V3 = 0) : A1(V1), B1(V1, V3), B2(V2, V3), c3(V1) { cout << "\nClass C3 constructor"; }
virtual void print() { cout << "\nVariable of C3 class"; }
virtual void show() { cout << "\nc3 = " << c3 << ", b1 = " << b1 << ", b2 = " << b2; }
};
int main() {
B1 b1(1, 2);
B2 b2(3, 4);
C1 c1(7, 8, 9);
C2 c2(11, 12, 13);
C3 c3(14, 15, 16);
B1* ptr1 = &b1;
B2* ptr2 = &b2;
B1* ptr3 = &c1;
B2* ptr4 = &c2;
B1* ptr5 = &c3;
ptr1->show();
ptr2->show();
ptr3->show();
ptr4->show();
ptr5->show();
return 0;
}

Binary file not shown.