初识类和对象

目录

一、类和对象的引入

二、访问限定符

三、class 

 四、类里面的声明与定义分离

五、类的大小

 六、this指针


一、类和对象的引入

C语言中我们写顺序表时,通常都是定义一个结构体,然后写一系列函数来完成对应操作,但每次调用函数都要有一个结构体指针做参数,每次写函数都要写它,这让我们觉得很繁琐,于是C++就出现了类和对象,我们从关注过程到关注对象,我们可以把函数和变量一起放在一个 struct 里面,让顺序表成为一个类,每次使用时就调用它,就能完成一系列操作。

 C语言时期的代码:

1、结构体要typedef

2、每个函数都有SL* s 这个参数

C++引入类和对象,我们可以把它们放在一个 struct 下面构成整体使用

1、不用写SL* s,函数可以直接访问这个类里面的成员变量

2、struct 结构体的类型名从 struct SeqList 变成了 SeqList 不用加前面的struct

3、函数名更加精炼,可以把前面的SeqList省略,因为已经是一个整体了,不用加前缀标识。

整体更加清晰美观。

二、访问限定符

 在类里面可以用访问限定符来划分区域,共有三种,分别为

1、public 表示可以在类外面被访问(公有)

2、private 表示类外面不可访问,只有类里面才可以(私有)

3、protect 与 private 类似,在继承时才有不一样

访问限定符的作用域是在本限定符到下一个限定符之间,若没有下一个,则到类末尾。

如下,我们定义类时一般把成员变量设为私有,把函数设为公有,让别人调用函数就能完成操作,把底层封装起来,更加安全。

三、class 

虽然用struct也可以定义类,但在C++中,我们更习惯用class来定义类,struct和class的唯一区别是struct默认是公有的(public),class默认是私有的(private)

写class类的习惯是把成员变量写在下面,函数方法写在上面。并且在成员变量名前加_。

在类里面成员变量和各个函数之间不用考虑顺序,可以直接访问。 

例:

我们想要使用类里面的函数就先实例化出一个对象,再用 对象.函数名(参数) 调用函数完成操作。  

注:只有公有才能在类外访问。 

 用上例类来实现:

执行结果如下: 

 访问私有:

 四、类里面的声明与定义分离

1、在类里面定义的函数默认是 inline 内联函数

2、声明与定义分离的函数只要在定义时在函数名前面加上  类名::   就可以了。

-------------------------------------------------------------------------------------------------------------------------------- 

执行结果如下 :

五、类的大小

一个类的大小就相当于C语言中结构体的大小,只算成员变量,不考虑函数。 

因为一个类可能有无数个实例对象,若每个对象大小都包括函数,那将会很大。

 执行结果如下:

详情计算规则请看:自定义类型详解_要努力学习ψ(`∇´)ψ的博客-CSDN博客 

当类里面没有成员变量时,大小不为0,为1。因为要开一个字节空间证明它存在。

 六、this指针

为什么在类里面成员变量和各个函数之间不用考虑顺序,可以直接访问呢?

因为在每个函数里面有一个默认参数  this指针 它可以帮助我们拿到对应的成员变量。

this指针不可被修改。

 这里我们可以打印_a的值是因为print函数前面还有一个默认的参数example* this

_a 会被识别成 this->_a;     e.print()会被识别成 e.print(&e);

这是编译器做的事情,我们写全会报错!

 感谢大家观看!!!( •̀ ω •́ )✧

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值