c++

状课网-少儿编程网课专业平台

c++ C++编程进阶级—初始化≠赋初值

发布时间:2021-11-22 14:17:06 浏览 0
各位小伙伴大家好:

本期给大家分享一个我在平时没有特别注意的小知识点,给变量赋初值和变量的初始化之间的差别。

首先我们还是来看看代码:

C++编程进阶级—初始化≠赋初值

箭头所指的是类成员变量value的初始化,也就是在程序在类实例化一个具体对象的时候才会给value赋值。

而比如:

int value;(定义)

value= 5;(赋初值)

value = value+6;(使用)

上面这种格式我们在第一行定义,第二行就是给变量赋初值。也就是在第三行使用变量之前就已经有值了。

总结:

赋初值在变量使用之前就有的值,变量初始化是与变量一起产生只要一声明就被赋的值。

笔记:

作为类成员变量,能不能赋初值呢?

我们来做点修改,将上面代码第14行的value赋一个初值,看看会怎么样。

C++编程进阶级—初始化≠赋初值

程序在编译的时候系统提示一条警告,非静态成员不能赋初值。也就是说成员变量不能赋初值。

我们来看看运行结果

C++编程进阶级—初始化≠赋初值

结果运行是正常的,那么为什么提示警告不能赋初值为什么程序还是运行正常呢?

因为这样的写法虽然不会导致运行出错,但是这个值根本就没有起作用。

类在定义的时候不会为变量分配内存空间,所以这个根本没有效。

类成员变量只有在实例化的是时候才会给变量分配内存空间,而实例化首先就会调用构造函数给变量初始化。

所以类非静态成员变量不支持在定义的是时候赋初值。

本期就为大家分享到这里,下期再会。

文章来源:创客编程小屋

本文链接:https://www.ascratch.com/news/17496.html

上一篇:C++编程进阶级—自定义头文件 下一篇:返回列表
相关推荐 更多