【C++】多态

多态,多种形态,去完成某个行为,当不同的对象去完成会产生不同的形态。

1.多态的定义及实现

多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。如student继承了people。person对象买票全价,student对象买票半价。在继承中构成多态要两个条件:

  • 调用函数的对象必须是指针或者引用
  • 被调用的函数必须是虚函数,且完成了虚函数的重写
2.虚函数

1)什么是虚函数

在类的成员函数前加virtual

class Person {
public:
	virtual void BuyTicket() { cout << "买票-全价" << endl; }
};

2)虚函数的重写

派生类中有一个和基类完全相同的虚函数,就称虚函数重写了。基类的虚函数完全相同是指函数名、参数、返回值相同,虚函数的重写也叫虚函数的覆盖

class Person {
public:
	virtual void BuyTicket() { cout << "买票-全价" << endl; }
};
class Student : public Person {
public:
	virtual void BuyTicket() { cout << "买票-半价" << endl; }
};
void Func(Person& p)
{
	p.BuyTicket();
}
int main()
{
	Person ps;
	Student st;
	Func(ps);
	Func(st);
	return 0;
}

3)重载、覆盖(重写)、隐藏(重定义)的对比
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值