qt类内静态函数使用非静态变量
时间: 2023-10-10 12:12:58 浏览: 100
关于C++静态成员函数访问非静态成员变量的问题
在Qt中,类内静态函数使用非静态变量的方法与普通的类内静态函数使用非静态变量的方法相同。下面是一个示例代码:
```cpp
class MyClass {
public:
MyClass();
~MyClass();
static void setNum(int num);
static 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()
{
MyClass obj;
return m_num + obj.m_num;
}
```
在上面的代码中,我们定义了一个名为MyClass的类,它有一个私有的静态变量m_num,表示类的实例数量。在MyClass的静态函数setNum中,我们可以直接访问静态变量m_num,并将其设置为传入的参数值。在MyClass的静态函数getNum中,我们通过创建一个MyClass的实例obj来访问非静态变量m_num,并将静态变量m_num和非静态变量m_num的值相加后返回。
需要注意的是,在访问非静态变量时,必须通过类的实例来访问,而不能直接使用类名来访问。因此,在MyClass的静态函数getNum中,我们需要通过创建一个MyClass的实例obj来访问非静态变量m_num。
阅读全文