状课网-少儿编程网课专业平台
本期给大家分享一个我在平时没有特别注意的小知识点,给变量赋初值和变量的初始化之间的差别。
首先我们还是来看看代码:
箭头所指的是类成员变量value的初始化,也就是在程序在类实例化一个具体对象的时候才会给value赋值。
而比如:
int value;(定义)
value= 5;(赋初值)
value = value+6;(使用)
上面这种格式我们在第一行定义,第二行就是给变量赋初值。也就是在第三行使用变量之前就已经有值了。
总结:
赋初值在变量使用之前就有的值,变量初始化是与变量一起产生只要一声明就被赋的值。
笔记:
作为类成员变量,能不能赋初值呢?我们来做点修改,将上面代码第14行的value赋一个初值,看看会怎么样。
程序在编译的时候系统提示一条警告,非静态成员不能赋初值。也就是说成员变量不能赋初值。
我们来看看运行结果
因为这样的写法虽然不会导致运行出错,但是这个值根本就没有起作用。
类在定义的时候不会为变量分配内存空间,所以这个根本没有效。
类成员变量只有在实例化的是时候才会给变量分配内存空间,而实例化首先就会调用构造函数给变量初始化。
所以类非静态成员变量不支持在定义的是时候赋初值。
本期就为大家分享到这里,下期再会。
文章来源:创客编程小屋
C++编程课程包括C++基础课程,普及组算法课程及提高组算法课程。适合高年级以上学员学习。
42021-09-17 15:02:54
各位小伙伴大家好:今天为大家分享到的是关于自定义的头文件导入的注意点,自定义头文件是和标准头文件相对的,是由我们自己写的头文件,一般在大型的程序中使用。首先还是来看程序:这就是头文件,注意文件名是用.h结尾头文件中只是定义了一个类和它的成员
02021-11-22 14:10:11
各位小伙伴大家好:本期为大家分享到的是关于结构体内容,结构体和类相似。C++中的结构体功能比c中的更加强大,有成员数据,也可以包含函数。首先还是来看一段代码:程序中定义了一个结构体,包含一个数据成员date用于存放字符型数据。还有一个指向结
02021-11-22 14:07:34
各位小伙伴大家好:今天我们继续来学习,本期为大家分享的内容是有关类的继承。类是面向对象编程语言中的概念,所谓万物皆类,这也是C++为什么比C多两个加号的原因。首先我们还是来看代码:代码中定义了两个类,一个Base类和Derived类。其中D
02021-11-22 14:06:23
各位小伙伴大家好:休息一天我们来继续学习,本期为大家分享的内容来源于一个参数。一般函数都有参数没什么好奇怪的,但这个有点不一样,它是一个类对象。使用类作为参数和其他的参数有什么不一样吗?当然有点不一样,在使用类对象作为参数的时候会调用这个类
02021-11-22 14:03:46