C++ 之静态成员变量
2022/8/13 14:23:38
本文主要是介绍C++ 之静态成员变量,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
C++ 之静态成员变量
静态成员变量的特点
在类内声明 在类外进行初始化。
#include <iostream> using namespace std; class Person{ public: static int m_Age ; // 静态成员变量 在类内声明 在类外进行初始化 // 静态成员变量也是有权限的 private: static int m_other ; // 私有属性在类外不能访问 }; int Person::m_Age = 10; // 类外初始化的实现 int Person::m_other = 23; void test01(){ // 通过对象访问属性 Person p1; p1.m_Age = 10; Person *p2 = new Person; p2->m_Age = 100; cout <<"p1=" <<p1.m_Age <<" p2="<<p2->m_Age <<endl; // 100 100 delete p2; // 通过类名访问属性 cout <<"通过类名进行访问:"<< Person::m_Age<<endl; // cout <<"通过类名进行访问:"<< Person::m_other<<endl; // 不可访问 } int main() { test01(); system("pause"); return EXIT_SUCCESS; }
运行结果:
p1=100 p2=100 通过类名进行访问:100
静态变量在编译的时候就分配了内存,这个内存叫全局静态区域。所以,对静态属性进行初始化时,必须在全局区进行初始化。与java类似,静态成员函数不能访问非静态的成员。类方法不能访问对象方法和属性。因为静态方法在编译的时候就已经初始化,而对象方法和属性在编译阶段还没分配内存。对象只有通过创建,对象的属性和方法才完成初始化。
这篇关于C++ 之静态成员变量的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享
- 2024-11-22ansible 的archive 参数是什么意思?-icode9专业技术文章分享
- 2024-11-22ansible 中怎么只用archive 排除某个目录?-icode9专业技术文章分享
- 2024-11-22exclude_path参数是什么作用?-icode9专业技术文章分享
- 2024-11-22微信开放平台第三方平台什么时候调用数据预拉取和数据周期性更新接口?-icode9专业技术文章分享
- 2024-11-22uniapp 实现聊天消息会话的列表功能怎么实现?-icode9专业技术文章分享
- 2024-11-22在Mac系统上将图片中的文字提取出来有哪些方法?-icode9专业技术文章分享
- 2024-11-22excel 表格中怎么固定一行显示不滚动?-icode9专业技术文章分享
- 2024-11-22怎么将 -rwxr-xr-x 修改为 drwxr-xr-x?-icode9专业技术文章分享
- 2024-11-22在Excel中怎么将小数向上取整到最接近的整数?-icode9专业技术文章分享