多态实例

#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;
}
posted on 2023-05-22 23:10  许七安gyg  阅读(4)  评论(0)    收藏  举报