类的继承、拷贝构造函数

C++学习笔记之三
上一节讲到了继承的基本用法,这一节主要讲述继承的基本用法以及拷贝构造函数。
1.继承
class Tutorial{


};
class vedioTutorial:public Tutorial{


};
注:继承时,私有成员(private)不能被调用。protected成员不能够被外部访问,但是能够被子类继承。
1)虚拟继承(起源:父指针指向子对象与函数重写)
在子类中对父类函数进行重写。若需在父类基础上,再添加功能,则先调用显示什么呢?
Tree *p=new AppleTree();
由于父类的一部分在指针(子类中)。在此基础上重写的话,调用的函数是父类的函数。
virtual关键字的用法(虚函数),解决重写问题。
在要重写的函数前,加virtual关键字在父类的函数前。
注:(1)只需要在父类中重写virtual,子类就自动重写virtual.
(2)即将重写的加virtual。

2)再谈构造与析构
创建子类对象时,父类的构造、析构都自动调用;调用顺序:先调用父类构造,再调用子类构造。

当父类有多个构造函数,可以显示调用;则调用默认。
child():parent(1,1){


}
当一个类被继承时,需将其析构函数声明为Virtual型。
Parent *p=new Child();
delete p;想调用子类析构,其实调用的是父类的析构,所以将父类析构加virtual。
主要问题:资源未被释放或崩溃。
3)多重函数
class Child:public father,public mother{


}//继承所有的public,protected属性。
4)纯虚函数与抽象类
纯虚函数的语法:(1)声明为virtual,(2)后面加0,(3)没函数体。
含纯虚函数的类为抽象类。抽象类不能被初始化。充当于“接口规范”。
具体实现(类的继承中写代码):子类对接口进行重写。
工程问题:
(1)抽象类没有具体的实现(2)常用于多重继承,实现了多套接口规范,又继承于原有父类。
(3)抽象类的析构函数应该被设置成virtual,因为它是用于多重继承的。
2.拷贝构造函数初讲

定义:以一个对象为蓝本来构造另一个构造函数
Object b;
Object a(b);//或object a=b;
拷贝构造函数不显示调用,并且只有三种情况:

(1)同上
(2)动态创建:Object *p=new Object(a);
(3)函数的传值调用:void test(Object a);//会自动调用拷贝构造函数。
这一节讲到这里,下一节继续讲解。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值