类静态成员变量的使用

本文解决了一个关于QT中静态成员变量初始化的问题。当尝试直接调用类的静态成员变量userName时,QT会提示错误。正确的做法是在CPP文件中初始化该静态成员变量。
问题:

类中定义了一个静态成员变量static QString userName;

在直接调用类静态成员userName时,QT提示如下错误:

Image



解决:

在CPP文件中初始化类的静态成员变量,



QString Parameter::userName = "sa";


菊子曰 本文用 菊子曰发布
静态成员变量使用方法如下: - **声明**:在内进行声明时需要添加 `static` 关键字。例如在 `Animal` 中声明静态成员变量 `m_sCount`: ```cpp class Animal { private: static int m_sCount; }; ``` - **定义**:静态成员变量必须在外进行定义,且定义时不添加 `static` 关键字。如下为 `Animal` 静态成员变量 `m_sCount` 进行定义并初始化为 0: ```cpp int Animal::m_sCount = 0; ``` - **访问**:静态成员可用 `名::静态成员名` 或者 `对象.静态成员名` 来访问。以下是通过 `名::静态成员名` 访问静态成员函数 `print`,以及通过对象访问静态成员函数的示例: ```cpp #include <iostream> class Animal { public: Animal() { m_c = 0; } void add() { m_sCount++; std::cout << "Animal::add" << m_sCount << std::endl; } static void print() { std::cout << "Animal::print" << m_sCount << std::endl; } private: static int m_sCount; int m_c; }; int Animal::m_sCount = 0; int main() { Animal animal; Animal::print(); // 通过名访问静态成员函数 animal.print(); // 通过对象访问静态成员函数 return 0; } ``` 静态成员变量使用还需注意其特性,所有静态成员为所有对象所共享,不属于某个具体的对象,存放在静态区;静态成员函数没有隐藏的 `this` 指针,不能访问任何非静态成员静态成员也是成员,受 `public`、`protected`、`private` 访问限定符的限制 [^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值