1、多重继承引用格式:
class circle:public circle1, public circle2 /* 类circle继承了circle1和circle2*/
若省略了派生存取说明符如上述中的public,则为私有派生。
2、多重继承容易产生模糊性,在引用时应注意。因此在设计时务必正确和严谨,能用单一继承时尽量不用多重继承。
代码示例:
// 多重继承.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
class circle1
{
protected:
int X;
public:
void setX(int x)
{
X = x;
}
void draw(void)
{
cout << "drawing...\n";
}
};
class circle2
{
protected:
int X;
public:
void setX(int x)
{
X = x;
}
void write(void)
{
cout << "writing...\n";
}
};
class circle:public circle1, public circle2 // 类circle继承了circle1和circle2
{
public:
void show(void)
{
cout << "showing...\n";
cout << this->circle1::X << endl;
cout << this->circle2::X << endl;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
circle cc;
cc.draw();
cc.write();
//cc.setX(100); // error, 对X的引用不明确
cc.circle1::setX(100);
cc.circle2::setX(200);
cc.show();
return 0;
}