纯虚函数:纯虚函数时一个在基类中说明的虚函数,在基类中没有定义,要求任何派生类都定义自己的版本。
纯虚函数为各派生类提供一个公共界面(接口的封装和设计、软件的模块功能划分)
纯虚函数说明形式:
virtual 类型 函数名(参数表)=0;
一个具有纯虚函数的基类成为抽象类。
// 多继承在抽象类中的应用.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
//接口类中只有函数原型定义,没有任何数据的定义
//C++中没有接口的概念,C++可以使用纯虚函数实现接口
class Interface1{
public:
virtual void print() = 0;
virtual int add(int a, int b) = 0;
};
class Interface2{
public:
virtual void print() = 0;
virtual int mult(int a, int b) = 0;
};
class Parent{
public:
int getA(){
a = 0; return a;
}
private:
int a;
};
class Child :public Parent, public Interface1, public Interface2{
public:
virtual void print(){
cout << "Child:print()已执行\n";
}
virtual int add(int a,int b){
return a + b;
}
virtual int mult(int a,int b){
return a*b;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
Child c1;
c1.print();//此时没有使用多态
Interface1 *it1 = &c1;
Interface2 *it2 = &c1;
it1->add(1, 2);
it2->mult(3,4);
return 0;
}