-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfile_5.cpp
More file actions
118 lines (101 loc) · 2.4 KB
/
file_5.cpp
File metadata and controls
118 lines (101 loc) · 2.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#include <iostream>
#include <string>
using namespace std;
class Human{ // base class for Student, ExtramuralStudent and Professor
public:
string name;
};
class Student: public Human{ // inherited from Human
// base class for ExtramuralStudent
public:
string group;
void Learn(){
cout << "Im ochnik!\n";
}
};
class ExtramuralStudent : public Student{ // inherited from Student
public:
void Learn(){
cout << "Im extra!\n";
}
};
class Professor: public Human{ // inherited from Human
public:
string subject;
};
class A{
private:
string msgPriv = "Message private\n";
protected:
string msgProt = "Message protected\n";
public:
string msgPub = "Message public\n";
};
class B : public A{
public:
void printMessage(){
cout << msgPub;
cout << msgProt;
//cout << msgPriv; // - private section is locked from here
}
};
//!
// when inheriting: public -> fields: public - public; protected - protected; private - private
// when inheriting: protected -> fields: public - protected; protected - protected; private - private
// when inheriting: private -> fields: public - private; protected - private; private - private
//!
//the calling order of constructors and destructors
class C{
public:
C(){
cout << "Im C constructor!\n";
}
~C(){
cout << "Im C destructor!\n";
}
};
class D : public C{
public:
D(){
cout << "Im D constructor!\n";
}
~D(){
cout << "Im D destructor!\n";
}
};
//
class E{
private:
string msg_;
public:
E(){
cout << "Im E constructor!\n";
}
E(string msg){
msg_ = msg;
}
void printMsg(){
cout << msg_ << "\n";
}
};
class F : public E{
public:
F(string msg) : E(msg){ // we call certain constructor
cout << "Im F constructor!\n";
}
};
int main(){
Student st;
st.Learn();
ExtramuralStudent stExtra;
stExtra.Learn();
cout << "\n";
B b;
b.printMessage();
b.msgPub;
//b.msgProt; - protected section locked from here
//b.msgPriv; - private section locked from here
D d;
F f("Message");
return 0;
}