gpt4 book ai didi

c++ - 变量在析构函数调用中不递增?

转载 作者:行者123 更新时间:2023-11-30 00:43:56 25 4
gpt4 key购买 nike

#include <iostream>

using namespace std;

class constructor {
public:
static int c, d;

constructor() {
c++;
}
~constructor() {
d++;
}
};

int constructor::c, constructor::d;

int main() {
constructor c;
cout<<constructor::c<<" "<<constructor::d;
return 0;
}

输出:1 0

如果我显式调用析构函数,则输出为 1 1

我想知道,为什么在隐式调用析构函数时 d 不递增?

最佳答案

您在调用 c 的析构函数之前进行打印 - 它将在范围末尾调用。添加一个新 block 会产生您预期的输出:

int main() {
{
constructor c;
}
cout<<constructor::c<<" "<<constructor::d;
}

关于c++ - 变量在析构函数调用中不递增?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51670126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com