qt类内非静态函数使用静态变量
时间: 2023-10-10 09:12:58 浏览: 90
在Qt中,类内非静态函数使用静态变量的方法与普通的类内非静态函数使用静态变量的方法相同。下面是一个示例代码:
```cpp
class MyClass {
public:
MyClass();
~MyClass();
void setNum(int num);
int getNum();
private:
static int m_num;
};
int MyClass::m_num = 0;
MyClass::MyClass()
{
}
MyClass::~MyClass()
{
}
void MyClass::setNum(int num)
{
m_num = num;
}
int MyClass::getNum()
{
return m_num;
}
```
在上面的代码中,我们定义了一个名为MyClass的类,它有一个私有的静态变量m_num,表示一个全局的变量。在MyClass的非静态函数setNum中,我们可以通过类名加作用域运算符来访问静态变量m_num,并将其设置为传入的参数值。在MyClass的非静态函数getNum中,同样可以通过类名加作用域运算符来访问静态变量m_num,并将其返回。
使用该类的示例代码如下:
```cpp
MyClass obj1;
MyClass obj2;
obj1.setNum(10);
qDebug() << "obj1 num:" << obj1.getNum();
qDebug() << "obj2 num:" << obj2.getNum();
```
在上面的代码中,我们创建了两个MyClass的实例,然后通过obj1的setNum函数将静态变量m_num设置为10。接着我们通过obj1和obj2的getNum函数分别获取静态变量m_num的值,可以看到它们都是10。
需要注意的是,静态变量是类的所有实例共享的,因此如果通过一个实例的非静态函数来修改静态变量的值,那么该静态变量的值将会被所有实例共享。
阅读全文