次のコードの出力結果は何ですか?
7740 ワード
1 #include <iostream>
2
3 using namespace std;
4
5 class A
6 {
7 protected:
8 int m_data;
9
10 public:
11 A(int data = 0)
12 {
13 m_data = data;
14 }
15 int GetData()
16 {
17 return doGetData();
18 }
19
20 virtual int doGetData()
21 {
22 return m_data;
23 }
24 };
25
26 class B: public A
27 {
28 protected:
29 int m_data;
30
31 public:
32 B(int data = 1)
33 {
34 m_data = data;
35 }
36
37
38 int doGetData()
39 {
40 return m_data;
41 }
42 };
43
44
45 class C: public B
46 {
47 protected:
48 int m_data;
49
50 public:
51 C(int data = 2)
52 {
53 m_data = data;
54 }
55
56 };
57
58 int main()
59 {
60 C c(10);
61
62 cout << c.GetData()<<endl;
63 cout << c.A::GetData()<<endl;
64 cout << c.B::GetData()<<endl;
65 cout << c.C::GetData()<<endl;
66 cout << c.doGetData()<<endl;
67 cout << c.A::doGetData()<<endl;
68 cout << c.B::doGetData()<<endl;
69 cout << c.C::doGetData()<<endl;
70
71 cout<<endl;
72 system("pause");
73
74 return 0;
75 }
しゅつりょく
1
1
1
1
1
0
1
1
近接呼び出しでは、親世代に関連インタフェースがある場合は親世代インタフェースを優先し、親世代に関連インタフェースがない場合は祖父世代インタフェースを呼び出すことに注意してください.