当前位置: 首页 > wzjs >正文

房九九西安房产网北京seo顾问

房九九西安房产网,北京seo顾问,哪里有学做ppt的网站,wordpress 4.5.2在C中,static 关键字是一个多功能修饰符,其行为取决于上下文。以下是 static 在不同场景下的详细说明: 1.静态成员变量(Static Member Variables) 定义: 在类内部声明为 static 的成员变量,属…

在C++中,static 关键字是一个多功能修饰符,其行为取决于上下文。以下是 static 在不同场景下的详细说明:

1.静态成员变量(Static Member Variables)

定义
在类内部声明为 static 的成员变量,属于类本身而非类的实例,所有对象共享同一份内存。

特点

  • 类级作用域:通过 类名::变量名 访问,无需创建对象。
  • 共享性:所有实例共享同一变量,修改一处会影响所有实例。
  • 初始化:必须在类外单独初始化常量整型除外
  • 生命周期:从程序开始到结束,与类的实例无关。

示例:

class Counter {
public:static int count; // 声明Counter() { count++; }
};
int Counter::count = 0; // 类外初始化int main() {Counter a, b, c;cout << Counter::count; // 输出3
}

2.静态成员函数(Static Member Functions)

定义
在类内部声明为 static 的成员函数,属于类而非实例,没有 this 指针。
特点

  • 仅访问静态成员:不能直接访问非静态成员变量或函数。
  • 调用方式:可通过 类名::函数名() 调用。
  • 用途:常用于工具函数或管理静态数据。

示例

class MathUtils {
public:static int add(int a, int b) { return a + b; }
};int main() {cout << MathUtils::add(2, 3); // 输出5
}

3.局部静态变量(Local Static Variables)

定义
在函数内部声明为 static 的局部变量,生命周期贯穿整个程序,但作用域仍限于函数内。

特点

  • 初始化一次:首次执行时初始化,后续调用保留值。
  • 线程安全(C++11后):局部静态变量的初始化是线程安全的。
  • 应用场景:统计函数调用次数、缓存等。

示例

void foo() {static int callCount = 0; // 只初始化一次callCount++;cout << "Called " << callCount << " times\n";
}int main() {foo(); // 输出1foo(); // 输出2
}

4.全局静态变量和函数(Global Static)

定义
在全局作用域(文件作用域)中声明为 static 的变量或函数,具有内部链接性。
特点

  • 文件作用域:仅在当前文件可见,避免命名冲突。
  • 隐藏性:其他文件无法通过 extern 引用。

示例

// File1.cpp
static int hiddenVar = 42; // 仅在File1.cpp可见// File2.cpp
extern int hiddenVar; // 链接错误!无法访问File1的hiddenVar

5.静态对象的销毁顺序

静态变量(包括全局、局部静态、类的静态成员)的销毁按初始化顺序的逆序进行。不同编译单元的静态对象销毁顺序未定义,可能导致依赖问题(见 Singleton 模式 的线程安全实现)。

6.常见应用场景

  • 单例模式:通过静态成员保存唯一实例。
  • 工具类:提供无需实例化的静态方法(如数学计算)。
  • 性能优化:局部静态变量减少重复初始化开销。
  • 资源管理:统计对象数量或跟踪资源使用。

7.总结表

上下文作用生命周期访问方式
类静态成员变量所有实例共享数据程序运行期类名::变量名
类静态成员函数操作静态数据,无 this 指针-类名::函数名()
局部静态变量保留函数调用间的状态程序运行期函数内部
全局静态变量限制变量为文件内可见程序运行期文件内

理解 static 的不同用途,能显著提升代码的模块化、封装性和性能。


文章转载自:

http://gOVFtJvr.scwrc.cn
http://8frsFVft.scwrc.cn
http://CXz3sIem.scwrc.cn
http://hkr5QsIL.scwrc.cn
http://x06N8lq0.scwrc.cn
http://p3thU03U.scwrc.cn
http://8euF8LD5.scwrc.cn
http://yc8VuCc7.scwrc.cn
http://qUikMrXd.scwrc.cn
http://hYS11DM5.scwrc.cn
http://UteGDgjH.scwrc.cn
http://sXwDQpSn.scwrc.cn
http://TSJLMxjB.scwrc.cn
http://w2my6aEp.scwrc.cn
http://NamHzzC5.scwrc.cn
http://HfmqYcJ3.scwrc.cn
http://mtJHnXN6.scwrc.cn
http://wITci1ou.scwrc.cn
http://rjcJx7Nt.scwrc.cn
http://rQipzlGu.scwrc.cn
http://iVenfnry.scwrc.cn
http://DonyIczF.scwrc.cn
http://xtIGcDtE.scwrc.cn
http://Fg0zOD9G.scwrc.cn
http://UuFRyM19.scwrc.cn
http://77TkdaLt.scwrc.cn
http://CK5qIcT2.scwrc.cn
http://u50k9HH4.scwrc.cn
http://C9Vgn7Ge.scwrc.cn
http://nlS7G6R5.scwrc.cn
http://www.dtcms.com/wzjs/679111.html

相关文章:

  • 域名搭建网站网站开发的研究计划书
  • 销售机械设备做网站app开发公司倒闭了怎么办
  • 上海住房和城市建设厅网站市场调研公司存在的意义
  • 不能上传图片到网站顺义区做网站
  • 渭南网站建设公司顾村网站建设
  • 网站开发合同 黑客攻击条款哪个网页设计培训机构好
  • 网站后台修改图片集顺序广州白云区哪里封了
  • 网站建设后怎么赚钱唐山市住房和城乡建设局门户网站
  • 网站开发新闻管理系统的背景华大集团 北京网站建设
  • cnzz网站建设wordpress 评论500
  • 郫县哪里有做网站的中国互联网金融协会
  • 网站开发语言net十大网站app软件
  • 浙江企业网站建设微信网站怎么建设
  • wap建站程序免费下载域名注册用个人还是公司
  • 全美网站建设公司企业建站免费模板
  • 如何做视频网站重庆网站建设大概需要多少钱
  • seo网站做推广如何做网站引流
  • wordpress横幅seo1888网站建设
  • 苏华建设集团有限公司网站wordpress登录选项
  • 阿里云网站地图是怎么做的新开传奇网站大全
  • 重庆网站建设快忻科技前端静态网站开发
  • 优化网站公司哪家口碑好大规模301让网站快速排名
  • 网站开发的课程设置成都哪家网站建设
  • 电商网站开发用什么语言表达网站设计网站建设毕业文稿
  • 显示网站目录拼车网站的建设雨实现
  • 摄影网站排行榜前十名望城区建设局网站
  • 1.网站开发的详细流程自由贸易试验区网站建设方案
  • 什么叫宣传类网站有什么免费的网站
  • 专业格泰网站建设外文网站建设完成
  • 生物技术网站开发网站建设需要具备哪些知识