C++Day71.0

本文介绍了C++中的多态概念,包括父类引用或指针指向子类对象的实现方式,静态联编与动态联编的区别,以及多态的内部结构。详细讲解了虚函数表和虚函数指针的作用,阐述了抽象基类和纯虚函数的应用。同时,讨论了虚析构函数的重要性,确保正确释放子类对象。文章适合C++初学者和进阶者阅读,帮助理解多态的核心原理。
摘要由CSDN通过智能技术生成

多态的实质:父类的引用或指针指向子类对象

怎么理解?
假设我们现在有如下的类,其中Animal为基类,Cat和Dog都是其派生类。

class Animal{
   
public:
	virtual void speak(){
   
		cout << "动物在说话" << endl;
	}
};
 
class Cat :public Animal{
   
public:
	void speak(){
   
		cout << "小猫在说话" << endl;
	}
};
 
class Dog :public Animal{
   
public:
	void speak(){
   
		cout << "小狗在说话" << endl;
	}
 
};

1.父类指针指向子类对象
调用时,可以定义父类的指针,然后指向子类的对象,指向哪个对象,便执行其对象的虚函数实现

int main() {
   
	方法1:
	
	Dog B;
	Animal *A=&B;
	A->speak();
	
	如果你不想给Dog类取名:
	Animal *A=new Dog;
	A->speak();
	
	方法2:
	
	A=new Cat;//如果小猫有名字A=new Cat("名字");
	A->speak();
	
	return
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值