多态实例
#include<iostream>
using namespace std;
class Human {
public:
virtual void toilet() = 0;
};
class Man :public Human {
void toilet()
{
cout << "上男卫生间" << endl;
}
};
class Woman :public Human {
public:
void toilet()
{
cout << "上女卫生间" << endl;
}
};
class Non: public Human{
public:
void toilet()
{
cout << "上无性别卫生间" << endl;
}
};
void func(Human* human)
{
human->toilet();
}
//void test01()
//{
// //将基类的func函数变成了静态函数
// Man man1;
// Woman woman1;
// Human::func(&man1);
// Human::func(&woman1);
//}
//void test02()
//{
// Man m;
//
// Human& p=m ;
// p.func(&m);
// Woman n;
// Human* p1 = &n;
// p1->func(&n);
//}
int main()
{
Man m1;
Woman m2;
Non m3;
func(&m1);
func(&m2);
func(&m3);
return 0;
}