C++随笔1

 

以下大部分纯属是个人按自己的理解,大部分是胡扯的
 

1,公用继承,保护继承,私有继承

A,对于类之间的关系:有3个类,one,two,three,two继承自one,three继承自two。对于two而言,无论是公用还是私有继承自one,one里的private都是不可见的,public与protected都是可见的。当然,three对于two也是一样,但是当two是private继承自one时,three是看不到one里的任何成员的。而two是public和protected继承自one时,three是可以使用one的protected和public变量的。如果存在four继承自three,那以上规则是可以通用的。

B,对于对象时:还是一样的三个类,首先对象是只能使用类的public成员的,所以只要讨论public是否看见,当two公有继承自one时,two的对象是可以看见one的public成员的,其他情况均不看见且以此类推。

2,类是什么

类是一种数据结构,和struct一样。类有很多规则,而这些规则都是为了处理不同数据情况而准备的,public private 或者是virtual,都是为了处理某一类情况。始终要记得类是为了处理数据而存在,而它的规则是为了分情况处理数据。

多个类之间,无论如何继承,它相对于对象都是一个抽象的东西,即,一些抽象东西在按一些规则达到一些效果,当然,对象与这个抽象东西也存在一些规则,从而达到某些处理某些情况的效果。

3,多态

基类指针指向子类对象时,调用同名函数。如果同名函数没有virtual,那调用的就是基类的函数(即,由指针决定),有virtual调用子类的函数(由对象决定)。基类指针指向子类对象且调用函数时,是这样的,首先内存块是由对象来决定的,所以会有一个包含了基类和子类的对象块,有virtual时则覆盖为一个函数,没有就保留2个函数,这样该规则就处理了2种数据调用的情况。

4,抽象类

抽象类一定有纯虚函数,如果子类没有重写纯虚函数,则默认继承改纯虚函数,从而也为抽象类,抽象类不能创建对象。

子类中的函数如果名字与参数与基类虚函数一样,则默认会变成虚函数,也就是说,只要你重写虚函数,那子类的重写的函数也会变成虚函数,重写虚函数使用override(不写好像也行)。

4,析构函数,构造函数

子类对象自动调用基类与子类的构造函数和析构函数,调用顺序为,创建对象时,调用先基类构造函数,再调用子类构造函数。销毁对象时,先调用子类析构函数,再调用基类析构函数。即:基类构造,子类构造,子类析构,基类析构。

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值