【发布时间】:2013-05-20 00:14:29
【问题描述】:
有没有办法在函数中初始化一个变量并保存它的值以便下次调用函数?
我正在 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。但是我不知道如何只初始化一次,程序启动时,以及每次调用函数后如何保持其新值。
【问题讨论】:
-
静态变量只初始化一次。有什么问题?
-
在哪里初始化呢?在头文件中?来自另一个班级?我尝试从另一个类进行初始化,但出现此错误:objekt.obj:-1: error: LNK2001: unresolved external symbol "public: static int objekt::smijer" (?smijer@objekt@@2HA)
-
你可能应该在类中初始化类的静态成员。或将其移至另一个类并将值传递给该类。
-
smijer是objekt类的成员吗? -
smijer是否需要被其他函数使用?您真的希望它具有全局生命周期,而不是与objekt的生命周期绑定吗?
标签: c++ static initialization