网站首页 > 基础教程 正文
1 构造函数
1.1 对象的初始化
在定义一个对象的时候,常常需要作某些初始化的工作,例如,对成员变量赋值。如果一个成员变量未赋值,那么,它的值是不可预知的(是系统随机分配的一个垃圾值)。因为系统为它分配内存的时候,保留了这些存储单元的原始数据,这就成为了这些成员变量的初始值。
定义一个对象的时候,应该给对象设置一个初始的值。让一个对象,有一个可以明确知道的状态。
应当注意:类的成员变量是不能在声明类时初始化的,下面的写法是错误的:
注意:类中的static类型的const成员可以在定义的时候初始化,在后续的章节,我们有介绍const、static类型成员的初始化。
因为类并不是一个实体,而是一种抽象类型,并不占用存储空间,显然,没有空间存放数据。所以,定义类的时候,不可以给类的成员变量赋值。上面的代码是错误的代码。
如果一个类中所有的成员都是公有(public类型)的,那么,可以在定义对象的时候对成员变量进行初始化,如下:
可以看到,定义stud对象的时候,给对象进行赋值,如下:
student stud = {"wkf", "xxx.mylinux.vip", 26572996};
此时,按顺序给student类对象的成员变量赋值,等效于:
stud.name = "wkf";
stud.addr = "xxx.mylinux.vip";
stud.number = 26572996;
这种情况和C语言的struct结构体变量的初始化是一样的,在一个花括号内顺序列出各个公用成员变量的值,两个值之间使用逗号分隔。但是,如果成员变量是私有的,或者类中有private或protected的成员,就不能使用这种方法来初始化。
猜你喜欢
- 2024-10-10 C++系列1-1:初探C++ c=2μf
- 2024-10-10 浅谈C++11(第9篇 可变参数模板) c++可变参数模板类
- 2024-10-10 数组的初始化方式有哪几种? 数组的初始化是什么意思
- 2024-10-10 c++对于内建类型的默认初始化 创建内部类的对象
- 2024-10-10 【C++编程语言】之 类和对象——对象的初始和消除
- 2024-10-10 C++基础语法梳理:引用、封装、继承和多态
- 2024-10-10 C++核心准则?:按照成员声明的顺序定义和初始化成员变量
- 2024-10-10 C++核心准则C.47:按照成员变量声明的次序定义和初始化数据成员
- 2024-10-10 C/C++语言编程系列002——不同情况下数组的初始化方法
- 2024-10-10 c++面试常见问题汇总—建议收藏 c++面试题总结
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)