繁体   English   中英

为什么不能给这个int赋值?

[英]Why can't I assign this int a value?

我有一堂课:

    class A
    {
    public:
        A();
        ~A();

        void IncrementNum();

    private:
        int num;
    };

    A::A() : num(0)
    {

    }

    A::~A()
    {
    }

    void A::IncrementNum()
    {
        num++;
    }

    int main()
    {
        A obj;
        obj.IncrementNum();
    }

当我在构造函数中设置断点时,它表明num等于某个随机值(例如-2483290483),我认为这是未分配的。 可以肯定的是,当我调用IncerementNum()并在num++之后的行上设置断点时,它显示的是完全相同的东西(num等于某个随机数)。 重复调用IncrementNum()不会更改任何内容,num不会更改。

因此,我决定改为将num++更改为num = 1 ,肯定会强制设置num 不。 即使将num离散地设置为num仍然显示为某个随机数。再次,对新版本的IncrementNum()的连续调用无法更改其值。

知道是什么原因造成的吗?

其他资讯:

我正在使用Windows 7家庭版和Visual Studio 2010

您可能正在发布模式下进行编译。 编译器发现num未被任何地方使用,并对其进行了优化。 尝试使用printf()cout显示num ,然后重试测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM