抽象类与纯虚函数

 1 /* 抽象类与纯虚函数 */
 2 
 3 #include<iostream>
 4 
 5 using namespace std;
 6 
 7 void show(myclassA my1)// 不行 副本机制会拷贝  拷贝会调用构造
 8 {
 9 
10 }
11 
12 void show(myclassA  & my1)// 行 只是语法上可以 实际不行
13 {
14 
15 }
16 
17 // 抽象类变量不可以做为参数,返回值,因为副本机制调研拷贝
18 // 但是指针可以
19 void * show(myclassA  & my1)//
20 {
21     return nullptr;
22 }
23 
24 class myclassA// 有纯虚函数的类就是抽象类,无法调用构造
25 {
26 public:
27     virtual void run() = 0;// 纯虚函数,接口
28 };
29 
30 class myclassB// 有纯虚函数的类就是抽象类,无法调用构造
31 {
32 public:
33     virtual void sleep() = 0;// 纯虚函数,接口
34 };
35 
36 
37 // 凡是继承myclass必须实例化纯虚函数
38 class myziclass : public myclassA,public myclassB
39 {
40 public:
41     void run()
42     {
43         cout << "myziclass run" << endl;
44     }
45 
46     void sleep()
47     {
48         cout << "myziclass sleep" << endl;
49     }
50 };
51 
52 
53 void main()
54 {
55     myclass my1;// 不行 抽象类不可以实例化
56 
57     myclass *p = new myclass;// 不行
58 
59     myclass *p = new myziclass;
60     p->run();
61 
62 
63     cin.get();
64 
65 }

 

posted on 2015-06-10 15:51  Dragon-wuxl  阅读(130)  评论(0)    收藏  举报

导航