C++构造函数-对象的初始化

Posted LC编程开发者

tags:

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

1 构造函数

1.1 对象的初始化

       在定义一个对象的时候,常常需要作某些初始化的工作,例如,对成员变量赋值。如果一个成员变量未赋值,那么,它的值是不可预知的(是系统随机分配的一个垃圾值)。因为系统为它分配内存的时候,保留了这些存储单元的原始数据,这就成为了这些成员变量的初始值。

定义一个对象的时候,应该给对象设置一个初始的值。让一个对象,有一个可以明确知道的状态。

       应当注意:类的成员变量是不能在声明类时初始化的,下面的写法是错误的:

注意:类中的static类型的const成员可以在定义的时候初始化,在后续的章节,我们有介绍const、static类型成员的初始化。

       因为类并不是一个实体,而是一种抽象类型,并不占用存储空间,显然,没有空间存放数据。所以,定义类的时候,不可以给类的成员变量赋值。上面的代码是错误的代码。

       如果一个类中所有的成员都是公有(public类型)的,那么,可以在定义对象的时候对成员变量进行初始化,如下:

       程序运行结果如下:

       可以看到,定义stud对象的时候,给对象进行赋值,如下:

student stud = "wkf", "www.mylinux.vip", 13926572996;

       此时,按顺序给student类对象的成员变量赋值,等效于:

stud.name = "wkf";

stud.addr = "www.mylinux.vip";

stud.number = 13926572996;

       这种情况和C语言的struct结构体变量的初始化是一样的,在一个花括号内顺序列出各个公用成员变量的值,两个值之间使用逗号分隔。但是,如果成员变量是私有的,或者类中有private或protected的成员,就不能使用这种方法来初始化。

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

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

c++的复制构造函数

C++中,继承时,创建子类对象,能否在子类构造函数初始化列表里调用基类构造函数?

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

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

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

c++中的构造函数和析构函数