5.#
点击查看考点
类层次, 虚函数调用
1#include <iostream>
2#include <string>
3
4using namespace std;
5
6class A {
7 public:
8 A(string s = "A101") : aid(s) {}
9
10 virtual void out() {
11 cout << "Aid:" << aid << endl;
12 }
13
14 private:
15 string aid;
16};
17
18class B : public A {
19 public:
20 B(string s = "B201") : bid(s) {}
21
22 virtual void out() {
23 A::out();
24 cout << "Bid:" << bid << endl;
25 }
26
27 private:
28 string bid;
29};
30
31class C : public A {
32 public:
33 C(string s = "C301") : A(s) {}
34
35 virtual void out() {
36 A::out();
37 b.out();
38 }
39
40 private:
41 B b;
42};
43
44int main() {
45 A sa("A102");
46 B sb("B202");
47 C sc("C302");
48 A* str[3] = {&sa, &sb, &sc};
49 for (int i = 0; i < 3; i++) {
50 str[i]->out();
51 }
52 return 0;
53}