C++——多态

本文介绍了C++中的多态概念,包括其实现、原理及抽象类。多态是指不同的对象对同一行为有不同的响应,实现依赖于继承、虚函数和抽象类。通过虚函数重写和使用override/final关键字可以控制多态行为。多态的实现关键在于虚表,运行时通过虚表指针找到正确的函数地址来实现动态绑定。
摘要由CSDN通过智能技术生成

1.多态的概念

目录

1.多态的概念

2.多态的实现

前提:继承

两个条件:

虚函数:

虚函数的重写:

override和final

3.多态的原理

4.抽象类


不同的对象完成某个行为时会产生不同的状态,这种现象称为多态。

例如:对于买票这件行为,普通人买的是全价票,而学生买的是半价票

class Person
{
public:
	virtual void buyTicket()
	{
		cout << "普通票" << endl;
	}
};

class Student :public Person
{
public:
	virtual void buyTicket()
	{
		cout << "半票" << endl;
		return new B();
	}
};

2.多态的实现

前提:继承

两个条件:

(1)必须通过基类的指针或引用调用虚函数

(2)被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写

虚函数:

virtual修饰的类成员函数称为虚函数

class Person
{
public:
	virtual void buyTicket()
	{
		cout << "普通票" << endl;
	}
};

虚函数的重写:

虚函数的重写(覆盖):派生类中有一个跟基类完全相同的虚函数(派生类虚函数与基类虚函数的返回值类型、函数名、参数列表完全相同),称派生类的虚函数重写了基类的虚函数

虚函数重写的另外两个例外ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值