类与对象

经过一个多月的学习,我们已经结束了类与对象的学习。

类的基本思想是数据抽象与封装,其中数据抽象是一种依赖接口和实现分离编程的技术。,在c++中扩展了结构体的概念,使之可以包含函数作为成员,这函数被称为成员函数,数据则被称为数据成员,这样的结构体被称为类这种类型的变量被称为对象。

为了解决一些数据可能未经允许被修改的情况,就要对数据进行隐藏,要对其加上访问限定符,访问限定符包括public(公有成员声明)private(私有成员声明)protected(被保护成员声明)其中私有成员不能被类外修改。

将数据跟操作捆绑在一起,并加上访问控制,这在面向对象中称为封装。

面向对象编程的主要工作就是创建一组对象并给他们发送消息。

this指针

每个成员函数都有一个隐含的参数,指向接收消息的对象,称为this指针,它的主要作用是区分与局部变量重名的数据成员,返回当前对象,获取当前对象的地址。

在某些情况下,有的函数需要访问一个类的私有成员,这就需要用到友元(friend),友元必须在被访问的类中声明,一个类的友元可以是全局函数,另一个类的函数或者是另一个类。

定义了结构体,还需要对数据进行初始化,这就要用到构造函数,构造函数需要定义一个有参数的,一个无参数的。

初始化由构造函数完成,引用成员的初始化也应该在构造函数中,但是又不能在函数体中使用赋值方式提供初值,这种操作叫做构造函数初始化列表

 

而初始化列表中初值排列的顺序不影响实际的初始化程序。

另外还有委托构造函数,即一个构造函数调用其他构造函数。

此外还有析构函数,它可以初始化成员,有时还要为指针成员在动态存储区分配空间。

还有const数据成员,const成员函数都是不可修改的。

最后就是static成员(静态数据成员)

static数据成员不属于某个特定对象的,所以不能在构造函数中初始化。

static成员只能定义一次,因此一般不在头文件中定义而在包含成员函数定义的源文件中。

最后在进行程序调试时,要一个一个函数的进行调试,两个类之间要空出一行,在定义完类后,要检验类中的各个成员函数是否可用,要用一组数据测试。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值