继承的几点注意事项(随着自己的学习更新)

1、并不是继承所有:                                                                                                             .........


2、基于派生类创建的对象在调用构造函数时,基类构造函数总是先于派生类的构造函数。无论你以形式a,还是形式b


3、友元类的成员。具体可以看解释。就是将继承类的成员函数定义为基类的友元函数。。。


如何修正呢,修饰为友元类成员即可:




4、protected就是专门为继承类而生的。。。。。


5、虚函数就是在函数的返回值前面加上一个关键字virtual。

什么作用呢,就是基类如果有一个函数volume(),派生类也有个函数volume(),(基类没有设定为虚函数时)那派生类的对象调用volume()的时候应该调用哪一个呢?基类的volume()!

如何让其调用派生类的呢?在基类的函数名前面见virtual,派生类也可以加,也可以不加。这样派生类的对象调用的时候就知道应该调用我自己的函数,而不是基类的。

假设上面的基类CBox和派生类CGlassBox都有虚函数ShowVolume(),那么上面的程序运行结果是什么呢?

第一个运行的是基类的ShowVolume(),第二个是运行的派生类的ShowVolume()。

原因是指针pBox是CBox类的对象,是基类的,那么它不仅包含可以包含基类对象的地址,也可以包含派生类对象的地址。所以运行结果是所指对象属于的类的函数。


虚函数也可以用于析构函数,因为多重继承的时候会出现析构函数调用错误,这个时候可以把析构函数都定义为虚函数,防止调用错误。。。


6、纯虚函数 抽象类

虚函数加上等号和0:virtual void volume() = 0;这就是一个纯虚函数。派生类必须覆写纯虚函数填充其内容或者仍定义为纯虚函数。

含有纯虚函数的类为抽象类,抽象类不可以定义其对象,只能作为基类来被继承。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值