首页 > 编程 > C++ > 正文

C++初探类

2019-11-11 07:21:52
字体:
来源:转载
供稿:网友

    C++和C的区别之一是,编程思想的不同——面向对象编程和过程性编程。面向对象编程(OOP)是一种特殊的、设计程序的概念性方法,其特性有: - 抽象; - 封装和数据隐藏; - 多态; - 继承; - 代码的可重用性。     C++将这些特性整合在一起,提供了类。笔者这部分仅对类进行简单的总结,高级特性以后进行总结。

抽象:对象和类

    基于计算机的概念是由外国人定义的,翻译过来的术语概念总会限定我们的想法,所以不必拘泥于叫法,通俗的来说,对象看作是个体,每个个体都是一个对象,类是根据某些规则对多个个体的划分归类,抽象其实指的就是这些规则。定义一个类就是制定这些规则,定义一个对象就是依据这些规则创建一个能够操作的实体。

概念和规范

    类是一种将抽象转换为用户定义类型的C++工具,它将数据表示和操纵数据的方法组合成一个整洁的包。     类规范由两个部分组成: - 类声明:以数据成员的方式描述数据部分,以成员函数(成为方法)的方式描述公有接口。 - 类方法定义:描述如何实现类成员函数。     简单的说就是,类声明提供了类的蓝图,而方法定义则提供了细节。     接口是一个共享框架,供两个系统交互时使用。对于类,接口指公共接口,通俗来说就是在public部分声明的函数,提供给外部使用来操纵类对象。

封装和数据隐藏:访问控制

    关键字PRivate、public和protect,描述了类成员的访问控制,通过这些关键字类实现了封装和数据隐藏的功能。

封装

    用笔者的话讲,封装就是指规则和代码不在同一个文件中,也就是将类声明和类定义放在不同的文件中。一般来说,类声明放在头文件(.h)中,类定义放在.cpp文件中并且包含类声明的头文件,使用时将它们放在一起编译运行。     在定义文件中,使用作用域解析运算符(::)来标示函数所属的类,需要注意的是,类成员名和类成员函数参数名需要区分开来,可以在声明时添加前缀或后缀的方式区分。

数据隐藏

    数据隐藏指用户无法直接对类成员数据进行操作,保护数据的安全,数据隐藏也属于封装。通过关键字private实现隐藏,对于一个类,用户只能直接使用在public部分定义的函数或变量,而在private中的内容,用户不能直接使用。在private中的内容,只有类成员函数能使用。

构造函数

    构造函数是一个特殊的类成员函数,专门用于构造新对象、将值赋给它们的数据成员,函数名为类名,没有返回值和声明类型,程序声明对象时,自动调用构造函数,可以显式或隐式的调用构造函数,如果没有定义构造函数的时候,编译器会提供默认构造函数,如果定义了构造函数,那么必须定义默认构造函数。构造函数只能用来创建对象,而不能被对象调用。

析构函数

    析构函数也是一个特殊的类成员函数,负责完成清理工作,它的名称也很特殊:在类名前加~,与构造函数一样,没有返回值和声明类型,此外还没有参数。调用析构函数由编译器决定,通常不显示的调用析构函数,一般在类对象过期时自动调用析构函数,如果没有定义析构函数,编译器隐式的提供默认析构函数。

其他

    每个成员函数都有一个this指针,this指针指向调用对象,如果方法需要引用整个调用对象,则可以使用*this表达式。     声明类对象时可以使用列表初始化的方式。     当成员函数不修改调用对象时,应将其声明为const,对数据进行保护。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选