首页 > 编程语言 > 详细

c++ 默认构造函数 不同编译器debug和release的区别

时间:2020-11-28 21:12:05      阅读:33      评论:0      收藏:0      [点我收藏+]

这几年一直在linux上开发,用的gcc版本比较高,最近把gcc降到4.8.5(centos 7默认版本)后,出现了一些成员变量初始化的问题。

看示例:

class Test
{
public:
    Test() = default;
    int GetA() { return m_a; }
private:
    int m_a;
};

int main(int argc, char **args)
{
    Test test;
    printf("%d\n", test.GetA());
    return 0;
}

gcc 8 debug和release输出:0
gcc 4.8 debug输出2147483647或者-2147483648 release输出0
vs最新版本(2019)debug输出随机数 release输出0

看来还是显式初始化靠谱一些

c++ 默认构造函数 不同编译器debug和release的区别

原文:https://www.cnblogs.com/flying_bat/p/14053937.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!