C++多态笔记

1、基类指针可以在不进行显式转换的时候指向派生类的对象,引用也是。

例如:

Brass是BrassPlus的父类。

则如下代码是可以的:

BrassPlus bp;
Brass * b1 = &bp;
Brass & b2 = bp;

2、基类指针或引用不能调用派生类的方法。

如果基类指针可以调用派生类方法,则会出现类似如下情况:

BrassPlus中的成员变量age是Brass类没有的,如果调用setAge()方法,是没有意义的,因为在基类中不存在这个变量。

3、如果一个函数在基类中被声明为虚函数。在通过引用或者指针进行调用的时候将会确定使用哪一种方法。

例如:

//BrassPlus extend from Brass
Brass dom("nany", 12, true);
BrassPlus bot ("wink", 14, false);
Brass * br = &dom;
Brass & br_ref = bot;
br.setValue();//use Brass::setValue
br_ref.setValue;//use BrassPlus::setValue

4、基类的析构函数最好声明为虚函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值