#include <iostream>
using namespace std;
/*
//有时会面临如果不用多继承则结构混乱的问题
(结构混乱,例如把某些模块特有的数据和服务放在共有区(例如类变量),这样如果一旦要维护修改,
则必须先理清模块间的关系才能,但如果不放在共有区类变量, 则又能长期保存和便于存取。
这时可以考虑分类,将通过权限来防止设计上的问题出现,从而提高可维护性)
以下是一种方法:
交通工具 ----- (实现同化部化,并实现用户接口统一且万能型)
/ / ----- (虚继承,实现数据维持一份)
汽车 轮船 ----- (实现异化部分,虚函数)
/ / ----- (多继承)
海陆两用车
*/
#include <iostream>
using namespace std;
class TestEngine
{
public:
TestEngine():m_iTestData(100){}
virtual ~TestEngine(){}
virtual void Testing() = 0;
protected:
int m_iTestData;
};
class TestEngine_TRP:public virtual TestEngine
{
public:
TestEngine_TRP(){}
virtual ~TestEngine_TRP(){}
virtual void Testing(){ cout<<"TRP Test! "<<m_iTestData<<endl; }
};
class TestEngine_TIS:public virtual TestEngine
{
public:
TestEngine_TIS(){}
~TestEngine_TIS(){}
virtual void Testing(){ cout<<"TIS Test! "<<m_iTestData<<endl; }
};
class TestEngine_All:public TestEngine_TRP,public TestEngine_TIS
{
public:
TestEngine_All(){}
virtual ~TestEngine_All(){}
virtual void Testing()
{
TestEngine_TRP::Testing();
TestEngine_TIS::Testing();
}
};
void main()
{
TestEngine* pTestEngine = new TestEngine_All();
pTestEngine->Testing();
system("pause");
}