C++中继承与多态使用时的一些小细节总结

本文探讨了多态方法调用的规则,重点分析了虚函数与非虚函数在重写时的行为差异。在多态场景下,无法直接通过父类引用调用子类特有的方法,但可以通过强制类型转换实现。同时,父类指针引用可以指向子类对象,运行时表现出与子类对象相同的行为。此外,我们还讨论了父类到子类的类型转换及其在不同情况下的表现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、多态方法调用规则

  
虚函数,重写

1、、多态时不能调用子类特有的方法。可强转调用,是因为使用时是函数指针找到函数入口去执行的。父类没有这指针;

2、多态调用的方法基本都是子类的,如果子类没有重写则是调用父类的,这个于虚函数列表有关。

3、想调用父类父类方法则需要使用命名空间

非虚函数,重写父类成员

 

测试案例 

//略

2、父强转为子

 编译时使用时
父类指针引用指向子类对象(多态)不报错与普通子类对象无差异
父类指针引用指向父类对象不报错使用子类特有成员变量会出错,但是使用方法不出错

 

//略

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值