多语言展示
当前在线:701今日阅读:57今日分享:41

C++程序设计之类的定义

本人学习C++的过程经验及总结,本文内容:类和对象构造函数与析构函数
工具/原料

VS2015

方法/步骤
1

C++的类是在结构体的基础上扩充而来的。在C++语言中,结构体可以被作为成员缺省为公有访问属性的类使用。class 类名{private:      数据成员或成员函数protected:      数据成员或成员函数public:      数据成员或成员函数}; <各成员函数的实现代码>

2

注意事项:1、class是定义类的关键字,类名必须是C++的有效标识符,但一般首字母大写;2、大括号的部分是类的成员(数据成员和函数成员),分别由private、public、protected三个关键字后跟冒号来指定访问属性。可以任何顺序出现任意次,这3部分并非必须同时出现;3、只有类中的成员函数才能使用private的数据成员和成员函数;4、public部分说明的数据成员或成员函数可被程序中的任何函数或语句调用,public成员多为成员函数;  5、protected部分说明的数据成员和成员函数是不能在类之外调用的,  Ø只有类的成员函数及其子类(派生类)可以存取protected的成员;  6、当未指明成员是哪部分时,默认是属于private成员,但一般不要采用;7、在类的定义中,类的说明部分的右边大括号后面必须有一个“;”。

3

将成员函数的定义直接写在类中。

4

成员函数的定义在类定义之外定义成员函数      在类的定义体中只写出成员函数的原型说明,而成员函数的定义写在类的定义之后。返回值类型  类名::成员函数名(参数说明){ 函数体 }1、通常将类的定义写在文件(.h文件)中,该文件称为头文件 2、成员函数的定义写在另一个文件(.cpp文件)中,称为类文件注:在类文件中,一定要使用“include”语句包含对应的头文件,否则,将会出现找不到成员函数或类成员的错误。

5

对象的定义和使用对象是类的实例,定义对象的方法和定义基本类型的变量一样: 类名  对象名;

6

this指针类的非静态成员函数必须通过对象进行调用。成员函数中,可以直接访问类成员。隐含解释为是对“当前调用者对象”的成员进行访问或使用。成员函数中“this-><成员名>” “(*this).<成员名>”可以省略

7

构造函数的作用及实现1、象也被称为类变量,一个类的对象是这个类的一个实例。  2、可以有多种赋值方式。

8

直接赋值的类应该满足:1、所有数据成员都是公有的 2、没有声明任何构造函数的

9

公有的初始化函数。定义一个专用的初始化函数,该函数可以有若干个参数。

10

构造函数:C++规定在类的说明中可以包含一个或多个特殊的公有函数成员——构造函数    1、函数名与类名相同;    2、无函数(返回)类型说明;    3、构造函数在一个新的对象被建立时,该对象所隶属类的构造函数自动地被调用,对这个对象完成初始化工作;    4、在上一条中提到的新对象的建立包括两种情况:一种是在对象说明语句中,一种是用new 函数建立新的动态对象时;    5、如果一个类说明中没有给出显式的构造函数,系统将自动给出一个缺省的(隐式的)构造函数:    6、如果说明中包括多个构造函数,一般它们有不同的参数表和函数体<类名>(void){}

11

成员初始化列表:一些特殊情况下数据成员只能用初始化,而不能被赋值。1、量成员  2、引用型的成员

12

析构函数的作用及实现1、析构函数名一律为“~〈类名〉”,如“~point”;2、析构函数无函数返回类型;3、析构函数没有参数;4、一个类只可有一个析构函数,也可以缺省;5、在对象生存期结束时,包括用delete函数释放动态对象时,系统自动调用析构函数;6、若某个类定义中没有给出显式的析构函数的话,则系统自动给出一个缺省的(隐式的)如下形式的析构函数:~<类名>(void){}

13

内联函数的定义和实现1、使用关键字“inline”来定义内联函数。2、关键字inline 必须与函数定义体放在一起才能使函数成为内联

推荐信息