抽象类与纯虚函数
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) 收藏 举报
浙公网安备 33010602011771号