2021-02-12

回头又看了一下C++的多态概念 之前学习的时候没理解

大概是在C++过程中你使用父类指针和子类指针调用一个函数时其调用的函数是不相同的。
下面我通过一段代码加强记忆

                      
#include <iostream>
#include <string>
using namespace std;

class Yuebuqun
{
public:
	Yuebuqun( string kongfu)
	{
		this->kongfu = kongfu;
	}
	virtual void fight()//这里是关键定义fight函数为虚函数在子类函数重写该函数在不同指针调用时体现的功能不同,这就是简单的体现了多态。
	{
		cout << "岳不群" << "使出了" << kongfu << "打人" << endl;
	}
private:
	string kongfu;
};
class Linpingzhi:public Yuebuqun
{
public:
		Linpingzhi(string kongfu):Yuebuqun(kongfu){}
		void fight()
		{
			cout << "林平之" << "使用了" << kongfu << "打人" << endl;
		}
private:
	string kongfu;
};
int main()
{
	Yuebuqun* xiaoyy = new  Yuebuqun("葵花宝典");
	xiaoyy->fight();
	
	Linpingzhi* xiaopp = new  Linpingzhi("僻邪剑谱");
	xiaopp->fight();
	delete xiaopp;delete xiaoyy;
}


上一篇:雍禾植发帝之java设计模式学习(一)策略模式


下一篇:python练习:寒冰猴子狐狸,猫狗咬架