[Qt][C++]static与extern关键字

文章目录

static

定义全局变量,可以使用static关键字,以保证在多个文件中调用的为同一个内存空间。

  1. 如果全局变量定义在.h头文件中,那么应该使用 static 关键字
  2. 在需要调用此全局变量的.h或者.cpp文件中,导入头文件
  3. 使用时,直接写变量名调用即可

Static 在类内用于定义静态成员(函数)。静态成员(函数)与具体的类无关,它的值及作用范围适用于所有的类,当它的值发生改变时,在所有的类中的值都会发生变化。

注意: 在类内部定义由 Static关键字修饰的成员 ,在使用前 必须在 类的外部 进行初始化。 不然会报错!

extern

定义全局变量,还可以使用extern关键字。extern 关键字是告诉编译器,变量定义在函数外部。可以是本文件,也可以是其它文件。

  1. 如果全局变量定义在.cpp中,那么应该使用extern关键字
  2. 在函数外定义,正常定义即可,定义时不要加extern关键字
  3. 在其他位置调用时,使用extern关键字进行声明即可

extern关键字声明会破坏面向对象的结构。建议使用static进行定义。

参考链接

QT中static关键字使用
QT全局变量的正确使用方法(static、extern)
QT中 使用static关键字 实现数据跨类传输

相关推荐
wifi___3 小时前
全局异常处理的原理
java·开发语言
我变成萤火虫4 小时前
河南萌新联赛2026第(四)场:南阳理工学院
数据结构·c++·算法·贪心算法·stl·动态规划
平常心的技术小牛6 小时前
Qt-快速上手-QMenuBar
开发语言·qt
青 春 记 忆6 小时前
零基础入门Python11|Git实战:为任务管理器建立版本历史
开发语言·git·vscode·python·python3.11
余额瞒着我当琳8 小时前
C++--深拷贝三件套 + swap + 写时拷贝 + vector 扩容 + reserve
java·开发语言·c++
坐吃山猪9 小时前
WebClient内存配置解析
开发语言·springboot·webflux
jdksjw9 小时前
同步与异步、阻塞与非阻塞、多线程、协程超详细讲解(Python并发编程从入门到精通)
开发语言·python
Zach_菠萝侠9 小时前
【DeepSeek Harness 研究】进化方向4:安全加固 思考、设计与实现
开发语言·安全·deepseek
ShineWinsu10 小时前
对于C++:布隆过滤器(bloomfilter)的详细解析
c++·面试·位图·位运算·布隆过滤器·海量数据·比特位
SL-staff10 小时前
技术实践:HR如何用JVS-Logic可视化编排实现考勤数据同步(含节点配置与异常处理)
开发语言·python·低代码·钉钉·可视化编排·jvs-logic·hr技术