先把问题陈述一下:
有两个类A, B, 它们可能是别人实现的(或是别人提供的库中的类), 很复杂且已经在用, 你不能修改他们, 你想写一个类C同时具有这两个类的特性, 因为自己实现它代价实在是太大, 所以你想到用C继承A, B以达到效果, 但是有一个问题, A, B具有一个同名的虚函数, 你在C中怎么重新实现这个虚函数呢? 先看下面的代码:
#include <string>
#include <iostream>
using namespace std;
class ChineseName
{
public:
virtual string getname()
{
return string();
}
};
class EnglishName
{
public:
virtual string getname()
{
return string();
}
};
class Name : public ChineseName, public EnglishName
{
public:
virtual string getname()
{
return string("chinese or english name? I donot know");
}
};
int main()
{
Name n;
ChineseName & c = n;
EnglishName & e = n;
cout << n.getname() << endl;
cout << c.getname() << endl;
cout << e.getname() << endl;
return 0;
}
三个输出都是一样的, 可是我怎么才能在c.getname()中输出中文名,