1. 程式人生 > 其它 >C++虛基類 類介面應用示例程式

C++虛基類 類介面應用示例程式

 1 #include <string>
 2 
 3 using namespace std;
 4 
 5 struct Sres
 6 {
 7     string content;
 8     int value;
 9 };
10 
11 class BaseABC
12 {
13 public:
14     BaseABC(string name = "base"):
15         name(name)
16     { }
17     BaseABC()
18     { }
19     ~BaseABC()
20     { }
21     string
name; 22 virtual Sres Skill() const = 0; 23 }; 24 25 class My:public BaseABC 26 { 27 public: 28 My(string name) : 29 BaseABC(name) 30 { 31 32 } 33 virtual Sres Skill() const; 34 }; 35 Sres My::Skill() const 36 { 37 return {"my",100}; 38 } 39 40 class Son :public BaseABC
41 { 42 public: 43 Son(string name) : 44 BaseABC(name) 45 { 46 47 } 48 virtual Sres Skill() const; 49 }; 50 Sres Son::Skill() const 51 { 52 return { "son", 80 }; 53 } 54 55 void Show(const BaseABC& abc) 56 { 57 auto tmp = abc.Skill(); 58 cout << abc.name << "
:" << tmp.content + " " << tmp.value << endl; 59 } 60 61 int main() 62 { 63 My aa(string("cxl")); 64 Son bb(string("son")); 65 Show(aa); 66 Show(bb); 67 }