gpt4 book ai didi

C++:为下次调用函数保存变量值

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:11:20 24 4
gpt4 key购买 nike

有没有办法在函数中初始化变量并保存它的值以供下次调用函数?

我在 qt 中制作应用程序,我有一个与信号相关的功能。我希望该函数中的一个变量在另一个变量达到目标后发生变化。这是该函数的主体:

void objekt::advance(int phase)
{
if(!phase) return;

QPointF location = this->pos();
if (int(location.x())==200 || int(location.x())==-200)
{
smijer=-smijer;

}
setPos(mapToParent(smijer,0));
}

我将 smijer 变量定义为 static int。但我不知道如何仅在程序启动时初始化一次,以及如何在每次调用函数后保持其新值。

最佳答案

您的答案基本上就在您的问题中。静态变量(类成员或函数的局部变量)仅在终止时初始化一次。例如;

#include <iostream>
int foo () {
static int sVar = 5;
sVar++;
return sVar;
}

using namespace std;
int main () {
int iter = 0;
do {
cout << "Svar :" foo() << endl;
iter++;
}while (iter < 3);
}

如果您编写这样的程序,它将打印出 Svar 值;

Svar :6
Svar :7
Svar :8

所以正如你所看到的,虽然我们调用了 foo 函数三次,但静态变量的初始化只完成了一次。

关于C++:为下次调用函数保存变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16640867/

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