拓冰建站拓冰建站
首页 / 资讯中心 / 正文

深入理解C++static 关键字修饰类的成员变量

类的静态成员变量存储在静态存储区不存储在对象的内存布局堆或栈中。该变量是该类的所有对象所共有的。它在程序启动时main函数执行前完成初始化在程序结束时才销毁。可以通过类名::变量名如MyClass::count在任何地方访问前提是public如以下代码所示 变量count是类的对象class1和类的对象class2所共有的因为赋值语句class1.count 20或者class2.count 30都改变了MyClass::count的值。特别注意类外的初始化语句是重要而且必须的(int MyClass::count 0;)没有它编译将报错。#include iostream class MyClass { public: static int count; // ① 类内声明只是告诉编译器有这个变量 }; int MyClass::count 0; // ② 类外定义真正分配内存并初始化此处是全局域 int main() { MyClass::count 10; // 正确访问 std::cout MyClass::count; // 输出 10 MyClass class1; class1.count 20; std::cout MyClass::count; // 输出 20 MyClass class2; class2.count 30; std::cout MyClass::count; // 输出 30 return 0; }
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门