C++类的一些知识

来源:互联网 发布:紫川软件招聘 编辑:程序博客网 时间:2024/06/14 13:02

声明部分

  1. 类的声明应该放在项目的头文件中,方便其他文件中使用该类,并且要注意的是,为了防止多重声明,建议使用头文件保护符来进行保护。
  2. 类的声明包含两个部分:数据成员和成员函数。
  3. 一般而言,将数据成员放在私有部分(以private限定符修饰),成员函数放在共有部分(public),作为调用类的接口进行使用。
  4. 私有部分的数据成员仅限于该类的成员函数进行访问
  5. 一般的类定义格式如下:
class className{ private:       data member declarations; public:       member function prototypes;}

定义部分

  1. 一般在cpp文件中对类进行定义,实质是给出成员函数的实现过程,注意需要将带有类定义的头文件包含到该cpp文件中来。
  2. 定义的时候需要注意,应使用作用域符号来指明该成员函数的所属,例如Student类中的成员函数studentId():
void Student::studentId(){   ......}

表明这个成员函数是属于Student类的


构造函数

为什么需要用户定义构造函数?
我的理解是,对于创建的一个类,如果采用程序默认的构造函数,那么对象声明后,需要一步一步的调用成员函数来获得有用的数值信息。而我们需要在声明对象时就赋予对象一些所期望的信息,那么这个时候就必须要用户自己来定义构造函数。

构造函数的特点:
1. 构造函数的名字与类名一致,允许重载构造函数来获得更多的不同的初始值对象
2. 注意,构造函数没有返回值,void也没有,就如同下面的原型示例

Student::Student(int id,string sex,int age);

有了构造函数,那么在声明对象时就可以有如下的几种方法

  1. Student stu = Student {20170101,”male”,23};
  2. Student stu = Student{20170101,”male”,23};
  3. Student stu = new Student{20170101,”male”,23};

提醒:对象不能调用构造函数,因为在构造函数构造出对象之前,对象是不存在的,它只能用来创建对象!
一般构造函数实现的过程中,一定要把默认的构造函数也写出来,一般来说默认的构造函数就是无参数并且也不做任何事的,这样的目的是为了预防后续在声明对象时,出现纰漏的情况。
默认构造函数如果有参数,那么必须给所有参数提供初始值!
隐式调用默认构造函数时,不需要加圆括号。


析构函数

什么是析构函数?
类生成的对象过期后,将调用一类函数进行清理的工作,这个函数就是析构函数,它的目的就是对对象失效后进行收尾工作。

析构函数特点:
1. 析构函数的名称与类名一致,前面加一个~
2. 析构函数没有返回类型和声明类型,更进一步,它没有参数列表。
3. 析构函数的原型为:~className();

何时调用析构函数?

对象类型 调用时机 静态存储类对象 程序退出时调用 自动存储类对象 退出相应代码块时调用 new创建的对象 delete调用时调用析构函数
原创粉丝点击