1 //纯虚函数和抽象类 2 // 语法 virtual 返回值类型 函数名 (参数列表)=0 3 //当类中有了纯虚函数 这个类也称为抽象类 4 5 6 #include <iostream> 7 #include <string> 8 using namespace std; 9 10 class Base 11 { 12 public: 13 //纯虚函数 14 //只要有一个纯虚函数,这个类称为抽象类 15 //抽象类特点 16 //1.无法实例化对象 17 //2.抽象类的子类,必须要重写父类中的纯虚函数,否则也属于抽象类 18 virtual void func() = 0; 19 20 }; 21 22 23 class Son :public Base 24 { 25 public: 26 virtual void func() 27 { 28 29 cout << "func函数调用!!" << endl; 30 } 31 32 }; 33 34 35 class Son2 :public Base 36 { 37 public: 38 virtual void func() 39 { 40 41 cout << "func2函数调用!!" << endl; 42 } 43 44 }; 45 46 void test01() 47 { 48 //Base b; //1.纯虚函数(抽象类)无法实例化对象 49 //new Base; //1.纯虚函数(抽象类)无法实例化对象 50 51 //Son s; //抽象类的子类,必须要重写父类中的纯虚函数,否则也属于抽象类 52 53 Base* base = new Son; 54 55 base->func(); 56 57 base = new Son2; 58 59 base->func(); 60 61 62 } 63 64 int main() 65 { 66 67 test01(); 68 69 70 system("pause"); 71 72 return 0; 73 74 }