c++ - 为什么我不能给这个 int 赋值?

标签 c++ visual-studio-2010 windows-7 int variable-assignment

我有一个类:

    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 仍然显示为某个随机数,即使在将其离散设置为 1 之后也是如此。同样,连续调用新版本的 IncrementNum() 也无法更改其值。

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

其他信息:

我使用的是 Windows 7 家庭版和 Visual Studio 2010

最佳答案

您可能在 Release模式下编译它。编译器看到 num 没有在任何地方使用并优化它。尝试使用 printf()cout 显示 num 并再次尝试测试。

关于c++ - 为什么我不能给这个 int 赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16656902/

相关文章:

c++ - 换行不适用于 C++ 中的文件?

c++ - QByteArray::append() 导致内存重新分配

python - maya 如何知道您的 MPxNode 的输出网格是什么?

visual-studio-2010 - 使用文件属性嵌套 appSettings

c++ - 从 SDL 检测可执行文件夹

c++ - Visual Studio 中的意外错误包括文件

c# - 如何创建其他窗口继承的窗口?

c++ - 如何使用 SDL_mixer 指定设备

Python 和 Py2Exe : "%1 Is Not A Valid Win32 Application"

windows-7 - 将命令行日志重定向到文件时出现 `pause` 命令问题