C++类-构造函数的作用

Posted LC编程开发者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++类-构造函数的作用相关的知识,希望对你有一定的参考价值。

构造函数的作用

       为了解决给对象成员初始化赋值的问题,C++提供了“构造函数(constructor)”来处理对象的初始化。构造函数是一种特殊的成员函数,与其他成员函数不同,不需要用户来调用它,而是在建立对象时自动执行。

构造函数的名字必须与类名同名,而不能由用户任意命名,以便编译系统能识别它并把它作为构造函数处理。构造函数不返回任何值,所以,函数没有返回类型。

例如,定义一个C++类,类名是 student,如下:

class student       //class开头

   ... ;

那么,构造函数的函数名与类名相同,所以,构造函数的函数名是student,例如:

student();                      //没有参数的构造构造函数;

student(char* name);     //带参数的构造函数;

构造函数的功能是由用户定义的,用户根据初始化的要求设计函数体和函数参数。在讲解构造函数之前,我们先写一个例子,测试构造函数的使用。测试代码如下:

       程序的运行结果有:

       在类student中定义了构造函数:

student(char* pn, char* pa, long long n);

构造函数的名称和所在的类同名。在建立对象时自动执行构造函数,它的作用是对定义的对象进行初始化。例如给成员变量赋初值,赋值语句是写在构造函数的函数体中,只有在调用构造函数的时候,才执行这些赋值语句,为当前对象的成员变量赋值。

       在上面的例子中,我们定义了stud对象,在定义对象的同时,给对象的成员变量赋值。定义对象如下:

student stud("wkf", "www.mylinux.vip", 13926572996);

       此时,定义stud对象,给对象设置3个数据,根据这些数据的类型,就调用对应的构造函数:

student(char* pn, char* pa, long long n);

       所以,把参数设置到对应的构造函数中,如下:

pn = "wkf";

pa = "www.mylinux.vip";

n = 13926572996;

       给构造函数的参数设置数据之后,就执行构造函数。

上面是在类内定义构造函数,也可以只在类内对构造函数进行声明,而在类外定义构造函数。在类外定义构造函数,如下:

       可以看到,把student(char* pn, char* pa, long long n);构造函数放在类外定义。有关构造

函数的使用,有以下说明:

(1) 构造函数的名称,与类名一样。

(2) 什么时候调用构造函数?定义类对象的时候,开始构建对象,调用类的构造函数。

(3) 构造函数没有返回值,因此,也不需要在定义构造函数时声明函数返回类型,这是它和一般函数的一个重要的不同之点,不能写成:

void student ()

.....

构造函数的作用主要是用来对对象进行初始化。

(4) 构造函数是建立对象时由系统自动执行的,而且只执行一次。所以,构造函数不能够由用户调用。

(5) 在构造函数的函数体中不仅可以对成员变量赋初值,而且,可以包含其他语句,例如cout语句。但是,一般不提倡在构造函数中加入与初始化无关的内容。

韦凯峰 Linux C/C++ 程序设计教程,Linux 系统编程,Openwrt 系统开发,微信:13926572996,QQ:1523520001,博客:www.mylinux.vip

以上是关于C++类-构造函数的作用的主要内容,如果未能解决你的问题,请参考以下文章

C++的构造函数的作用:初始化类对象的数据成员

C++的构造函数的作用:初始化类对象的数据成员

C++的构造函数的作用:初始化类对象的数据成员

C++中怎么拷贝构造函数(格式及相关符号的意识分别是啥)并且拷贝函数的作用是啥

使用 C++ 基类构造函数?

C++类构造函数和析构函数详细刨析,高细腻度讲解