作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
有没有办法在函数中初始化变量并保存它的值以供下次调用函数?
我在 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/
我是一名优秀的程序员,十分优秀!