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
|
/*there are these several people: student teacher office_worker student_teacher
*/
#include <iostream>
using
namespace
std;
class
people
{
public
:
people(
const
char
*n)
{
name=
new
char
[
strlen
(n)+1];
strcpy
(name,n);
}
void
Print()
const
{
cout<<
"Name:"
<<name<<endl;
}
private
:
char
*name;
};
class
student:
public
people
{
public
:
student(
const
char
*n,
const
char
*m):people(n)
{
major=
new
char
[
strlen
(m)+1];
strcpy
(major,m);
}
void
Print()
const
{
people::Print();
cout<<
"Major:"
<<major<<endl;
}
private
:
char
*major;
};
class
Staff:
virtual
public
people
{
public
:
Staff(
const
char
*n,
const
char
*d):people(n)
{
dept=
new
char
[
strlen
(d)+1];
strcpy
(dept,d);
}
protected
:
char
*dept;
//处 科
};
class
teacher:
public
Staff
{
public
:
teacher(
const
char
*n,
const
char
*d,
const
char
*l):people(n),Staff(n,d)
{
lesson=
new
char
[
strlen
(l)+1];
strcpy
(lesson,l);
}
void
Print()
const
{
Staff::Print();
cout<<
"lesson:"
<<lesson<<endl;
}
protected
:
char
*lesson;
};
class
StudentTeacher:
public
student,
public
teacher
{
public
:
StudentTeacher(
const
char
*n,
const
char
*m,
const
char
*d,
const
char
*l)
:people(n),student(n,m),teacher(n,d,l){}
void
Print()
const
{
student::Print();
cout<<
"Department"
<<dept<<endl;
cout<<
"Lesson"
<<lesson<<endl;
}
private
:
};
void
main()
{
student stu(
"Mike"
,
"SoftwareEngineering"
);
Staff sta(
"jason"
,
"Managerment"
);
teacher t(
"Tim"
,
"conputer"
,
"c++"
);
StudentTeacher st(
"sam"
,
"computerApplication"
,
"computer"
,
"c++"
);
stu.Print();
sta.Print();
t.Print();
st.Print();
}
|
类的继承特性
最新推荐文章于 2020-09-18 10:40:08 发布