首页>学校动态>C++编程进阶级—初始化≠赋初值

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

来源:南宁少儿编程培训学校时间:2024/1/15 15:54:36

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

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

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

  而比如:

  int value;(定义)

  value= 5;(赋初值)

  value = value+6;(使用)

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

  总结:

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

  笔记:

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

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

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

  我们来看看运行结果

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

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

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

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

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

上一页 下一页

推荐课程更多>

申请体验课

关于我们 | 联系我们 | 南宁少儿编程培训学校

版权所有:培训指南

  • 在线咨询
  • 电话咨询
  • 预约试听