纯虚函数
class A
{
public:
virtual void print()
{
cout<<"A"<<endl;
}
virtual void test()=0; //纯虚函数
};
一个类内有纯虚函数,这个类就叫抽象类;
抽象类不能实例化; <java、python:继承抽象类的的子类必须实现父类的纯虚函数>
充当功能接口或者类接口
依赖于抽象类编程
避免依赖于具体类编程:银行加钱更新数据库
依赖倒转原则
例子:妈妈讲故事
实现:组装电脑:
#include <iostream>
using namespace std;
class Component //抽象出————零件这一抽象类::名字和作用
{
public:
virtual void name()=0;
virtual void func()=0;
};
class Cpu:public Component
{
void name()
{
cout<<"Cpu--"<<endl;
}
void func()
{
cout<<"负责计算"<<endl;
}
};
class Disk:public Component
{
void name()
{
cout<<"Disk--"<<endl;
}
void func()
{
cout<<"负责存储静态数据"<<endl;
}
};
class Mem:public Component
{
void name()
{
cout<<"Mem--"<<endl;
}
void func()
{
cout<<"负责处理动态数据"<<endl;
}
};
class Adm //抽象出————管理员这一抽象类::组装和配置
{
public:
void assemble()
{
cout<<"Adm 组装了一台电脑:"<<endl;
}
void allocation( Component *c0)
{
c0->name();
c0->func();
}
};
int main()
{
Adm zhang;
zhang.assemble();
Cpu *c1=new Cpu;
Disk *d1=new Disk;
Mem *m1=new Mem;
zhang.allocation(c1);
zhang.allocation(d1);
zhang.allocation(m1);
return 0;
}
运行结果如下: