QT static变量
时间: 2023-11-28 08:09:02 浏览: 238
在Qt中,static变量可以用于在类中共享数据,也可以在函数中用于保留数据的状态。
在类中,static变量属于整个类,而不是类的实例。这意味着所有类的实例都共享相同的static变量。您可以通过在类定义中使用关键字static来声明静态变量。以下是一个示例:
```cpp
class MyClass {
public:
static int sharedVar;
};
int MyClass::sharedVar = 0; // 初始化静态变量
int main() {
MyClass obj1;
MyClass obj2;
obj1.sharedVar = 10;
std::cout << obj2.sharedVar << std::endl; // 输出 10,因为obj1和obj2共享同一个静态变量
return 0;
}
```
在上面的示例中,`sharedVar`是一个静态变量。无论创建多少个`MyClass`对象,它们都共享相同的`sharedVar`变量。所以,当我们将`obj1.sharedVar`设置为10后,`obj2.sharedVar`也会变成10。
在函数中,静态变量用于保留数据的状态。当函数退出时,静态变量的值将保留下来,并在下次调用该函数时继续使用。以下是一个示例:
```cpp
void exampleFunc() {
static int count = 0; // 静态变量
count++;
std::cout << "Count: " << count << std::endl;
}
int main() {
exampleFunc(); // 输出 Count: 1
exampleFunc(); // 输出 Count: 2
exampleFunc(); // 输出 Count: 3
return 0;
}
```
在上面的示例中,`count`是一个静态变量。每次调用`exampleFunc`函数时,`count`的值都会增加,并保留在下次调用时使用。所以,依次调用`exampleFunc`会输出连续递增的计数值。
总之,Qt中的static变量可以用于在类中共享数据或在函数中保留数据的状态。
阅读全文