基类中的纯虚类成员函数需要在派生类中实现其定义,本实例中派生类继承了两个接口类(纯虚类也可以称为接口类)。实例如下:
#include <iostream>
using namespace std;
/* 第一个接口类 */
class ICmyBase0
{
private:
/* data */
public:
ICmyBase0(/* args */);
~ICmyBase0();
int firstFunction0();
virtual int onConnect() = 0;
virtual int onDataIn() = 0;
};
ICmyBase0::ICmyBase0(/* args */)
{
printf("ICmyBase0\n");
}
ICmyBase0::~ICmyBase0()
{
printf("~ICmyBase0\n");
}
/* 第一个接口类 */
class ICmyBase1
{
private:
/* data */
public:
ICmyBase1();
~ICmyBase1();
int firstFunction1();
virtual int GetConnect() = 0;
virtual int GetDataIn() = 0;
};
ICmyBase1::ICmyBase1(/* args */)
{
printf("ICmyBase1\n");
}
ICmyBase1::~ICmyBase1()
{
printf("~ICmyBase1\n");
}
class myPeople: public ICmyBase0, public ICmyBase1
{
private:
/* data */
public:
myPeople(/* args */);
~myPeople();
int myPrintName();
virtual int onConnect();
virtual int onDataIn();
virtual int GetConnect();
virtual int GetDataIn();
};
myPeople::myPeople(/* args */)
{
printf("construct myPeople obj\n");
}
myPeople::~myPeople()
{
printf("destory myPeople obj\n");
}
int myPeople::myPrintName()
{
printf("myPeople::myPrintName\n");
}
int myPeople::onConnect()
{
printf("onConnect comming\n");
}
int myPeople::onDataIn()
{
printf("onDataIn comming\n");
}
int myPeople::GetConnect()
{
printf("GetConnect comming\n");
}
int myPeople::GetDataIn()
{
printf("GetDataIn comming\n");
}
int main()
{
myPeople *pobj = new myPeople;
ICmyBase0 *pICbase0 = pobj;
ICmyBase1 *pICbase1 = pobj;
cout << "pobj" << pobj << endl;
cout << "==============================" << endl;
pICbase0->onDataIn();
pICbase0->onConnect();
pICbase1->GetDataIn();
pICbase1->GetConnect();
pobj->myPrintName();
cout << "==============================" << endl;
delete pobj;
printf("[%s|%d] main exit\n", __FUNCTION__, __LINE__);
return 0;
}