纯虚函数: virtual void func() = 0; 抽象类的子类 必须重写父类中的纯虚函数,否则也属于抽象类

//纯虚函数和抽象类
//在多态中,通常父类中的虚函数的实现是毫无意义的,主要是调用子类重写的内容
/*因此可以将虚函数改为纯虚函数

纯虚函数语法:virtual 返回值类型 函数名 (参数列表)=0; */

//抽象类特点: 无法实例化对象 子类必须重写抽象类中的纯虚函数,否则也属于抽象类

#include
using namespace std;
//纯虚函数和抽象类
class Base
{
//纯虚函数
//只要哟一个纯虚函数,这个类称为抽象类
//抽象类特点:1.无法实例化对象
//2.抽象类的子类 必须重写父类中的纯虚函数,否则也属于抽象类
public:
virtual void func() = 0;

};
class son :public Base
{
public:
virtual void func()
{
cout << “son func函数调用” << endl;
};

};

class son2 :public Base
{
public:
virtual void func()
{
cout << “son2 func函数调用” << endl;
}
};
void test01()
{
//Base b; //抽象类是无法实例化对象
//new Base;//抽象类是无法实例化对象
son s;//子类必须重写父类中的纯虚函数,否则无法实例化对象

Base* base = new son;       //表示Base *地址变量名
base->func();
delete base;
base = new son2;
base->func();

}

int main()
{
test01();
system(“pause”);
return 0;
}

猜你喜欢

转载自blog.csdn.net/ADADQDQQ/article/details/108333103