rzjy123 2022-03-03 10:50 采纳率: 85.7%
浏览 19
已结题

默认初始化:当我们在块作用域内不使用任何初始值定义一个非静态变量时

c++primer,262页,7.5.3节,默认构造函数的作用讲到,默认初始化,当我们在块作用域内不使用任何初始值定义一个非静态变量时,发生默认初始化,我的问题是在块作用域外不也是默认初始化吗,为什么要强调在块作用域内?
还有,未被显式定义的话,内置类型在函数体内部是不是默认初始化?第40页讲到,这样的情况是不被初始化,那不被初始化是不是默认初始化的一种?我看百度上讲的也糊里糊涂,有人说不被初始化不属于默认初始化,我看这样讲是错的,默认初始化和值初始化都讲不明白,每个概念都要靠猜,一句话讲明白的几个小时都搞不懂,这书的概念讲的真是太烂了,理解不了可以慢慢看,东西是什么都不讲明白没法看

  • 写回答

1条回答 默认 最新

  • hfhua 2022-03-03 11:03
    关注

    首先是存储方式不一样。其次 你每次用类新建对象时,普通变量都要重新初始化,而static的变量是所有对象共有的属性,如果在一个对象中改变static,其他对象中该变量也会改变,而普通变量是属于各自对象(也就是说每个对象都有各自的值)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月25日
  • 已采纳回答 3月17日
  • 创建了问题 3月3日

悬赏问题

  • ¥15 Stata链式中介效应代码修改
  • ¥15 latex投稿显示click download
  • ¥15 请问读取环境变量文件失败是什么原因?
  • ¥15 在若依框架下实现人脸识别
  • ¥15 添加组件无法加载页面,某块加载卡住
  • ¥15 网络科学导论,网络控制
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错