#include <iostream>
using namespace std;
class Person
{
public:
virtual void speak()
{
cout << "I can speak!" << endl;
}
};
class Chinese:public Person
{
public:
virtual void speak()//同名覆盖
{
cout << "I can speak in chinese!" << endl;
}
void speak(int i)
{
}
};
class English:public Person
{
public:
virtual void speak()
{
cout << "I can speak in English" << endl;
}
};
class Japanese:public Person
{
virtual void speak()
{
cout << "I can speak in Japanese" << endl;
}
};
int main()
{
Chinese c1;
English e1;
Japanese j1;
Person* p = NULL;
p = &c1;
p->speak();
p = &e1;
p->speak();
p = &j1;
p->speak();
c1.speak();
return 0;
}
转载于:https://my.oschina.net/HappyTeemo/blog/1558508