当前位置:  开发笔记 > 编程语言 > 正文

Visual Studio C++编译器奇怪的行为,对局部变量对象

如何解决《VisualStudioC++编译器奇怪的行为,对局部变量对象》经验,为你挑选了1个好方法。

我对C++编程和编程本身比较陌生,我试图熟悉C++代码的Visual Studio编译器的预期行为.(Visual Studio 2015)

class aClass {

   public:
     int a;
     int b;
}

然后在函数块内部,当我声明这个类的对象时:

aClass obj;
cout << obj.a;

然后我确实有一次获得随机RAM内容作为变量的值,而有时我得到编译错误:局部变量未初始化.(值得注意的是,每当编译器克服错误一次,它就不会再次重复它,尽管它可能会在第一次克服错误之前多次重复它!)

关于声明对象的最佳实践的任何建议,

我应该坚持使用表格aClass obj = aClass();来获得一致的结果.

或任何相关的意见.提前致谢.



1> Some program..:

从类或结构声明变量时,将构造对象,但内部数据不会自动初始化.由您来初始化数据.

没有初始化的成员变量的值将是不确定的,并且以任何方式使用它们(甚至从它们读取)是未定义的行为.

根据类或结构,初始化数据的方式不同.如果您定义了构造函数,那么我建议您使用构造函数初始化列表.如果您有一个POD类型的结构(就像您在代码中显示的结构),您可以简单地执行类似的操作

aClass obj = {};  // Basically the same as `aClass obj = aClass()`

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有