尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

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

深入理解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; }
返回列表