天天看点

C++多重继承的实现

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

<code>//</code>

<code>//  main.cpp</code>

<code>//  test</code>

<code>//  created by jacedy on 14-11-6.</code>

<code>//  copyright (c) 2014年 jacedy. all rights reserved.</code>

<code>#include &lt;iostream&gt;</code>

<code>using</code> <code>namespace</code><code>::std;</code>

<code>//数据类</code>

<code>class</code> <code>cdata {</code>

<code>public</code><code>:</code>

<code>    </code><code>char</code> <code>name[20];</code>

<code>    </code> 

<code>    </code><code>cdata(</code><code>char</code> <code>name[])</code>

<code>    </code><code>{</code>

<code>        </code><code>strcpy</code><code>(name, name);</code>

<code>    </code><code>}</code>

<code>    </code><code>void</code> <code>print()</code>

<code>        </code><code>printf</code><code>(</code><code>"姓名:%s\n"</code><code>, name);</code>

<code>};</code>

<code>//教师类</code>

<code>class</code> <code>cteacher : </code><code>virtual</code> <code>public</code> <code>cdata {</code>

<code>    </code><code>int</code> <code>sal;</code>

<code>    </code><code>cteacher(</code><code>char</code> <code>name[], </code><code>int</code> <code>sal) : cdata(name)    </code><code>//要先初始化基类!!!</code>

<code>        </code><code>sal = sal;</code>

<code>        </code><code>printf</code><code>(</code><code>"姓名:%s, 工资:%d\n"</code><code>, name, sal);</code>

<code>//学生类</code>

<code>class</code> <code>cstudent : </code><code>virtual</code> <code>public</code> <code>cdata {</code>

<code>    </code><code>int</code> <code>id;</code>

<code>    </code><code>cstudent(</code><code>char</code> <code>name[], </code><code>int</code> <code>id) : cdata(name)</code>

<code>        </code><code>id = id;</code>

<code>        </code><code>printf</code><code>(</code><code>"姓名:%s, 学号:%d\n"</code><code>, name , id);</code>

<code>//研究生类</code>

<code>class</code> <code>cpostgrad : </code><code>virtual</code> <code>public</code> <code>cstudent {</code>

<code>    </code><code>char</code> <code>dn[40];</code>

<code>    </code><code>cpostgrad(</code><code>char</code> <code>name[], </code><code>int</code> <code>id, </code><code>char</code> <code>dn[]) : cstudent(name, id),cdata(name)</code>

<code>        </code><code>strcpy</code><code>(dn, dn);</code>

<code>        </code><code>printf</code><code>(</code><code>"姓名:%s, 院系:%s\n"</code><code>, name, dn);</code>

<code>//教师中的在职研究生类</code>

<code>class</code> <code>ctpost : </code><code>public</code> <code>cpostgrad, </code><code>public</code> <code>cteacher {</code>

<code>    </code><code>ctpost(</code><code>char</code> <code>name[], </code><code>int</code> <code>id, </code><code>char</code> <code>dn[], </code><code>int</code> <code>sal) : cpostgrad(name, id, dn),cteacher(name, sal),cstudent(name, id),cdata(name)</code>

<code>        </code><code>printf</code><code>(</code><code>"姓名:%s, 工资:%d, 院系:%s\n"</code><code>, name, sal, dn);</code>

<code>int</code> <code>main(</code><code>void</code><code>)</code>

<code>{</code>

<code>    </code><code>cdata a(</code><code>"a"</code><code>);</code>

<code>    </code><code>a.print();</code>

<code>    </code><code>cteacher b(</code><code>"b"</code><code>, 10000);</code>

<code>    </code><code>b.print();</code>

<code>    </code><code>cstudent c(</code><code>"c"</code><code>, 12);</code>

<code>    </code><code>c.print();</code>

<code>    </code><code>cpostgrad d(</code><code>"d"</code><code>, 18, </code><code>"计算机学院"</code><code>);</code>

<code>    </code><code>d.print();</code>

<code>    </code><code>ctpost e(</code><code>"e"</code><code>, 22, </code><code>"计算机学院"</code><code>, 20000);</code>

<code>    </code><code>e.print();</code>

<code>    </code><code>return</code> <code>0;</code>

<code>}</code>

继续阅读