C++ 静态成员变量
静态成员变量
1、成员变量和成员函数前加上关键字static,称为静态成员。
2、静态成员变量:所有对象共享一份数据、在编译阶段分配内存、类内声明,类外初始化。
class Person
{public:static int m_A;
private:static int m_B;
};
int Person::m_A = 100;
int Person::m_B = 100;
上诉为类Person的定义,下面代码作为检测
Person p1;p1.m_A = 150;cout << "p1中的m_A为:" << p1.m_A << endl;//通过对象访问静态成员变量Person p2;p2.m_A = 200;cout << "p1的m_A成员变量为:" << p1.m_A << endl;cout << "p2的m_A成员变量为:" << p2.m_A << endl;p1.m_A = 300;cout << "p1和p2的m_A成员变量为:" << Person::m_A << endl;//通过类名访问静态成员变量
检验结果如下:
p1中的m_A为:150
p1的m_A成员变量为:200
p2的m_A成员变量为:200
p1和p2的m_A成员变量为:300
请按任意键继续. . .
3、静态成员变量的两种访问方式:
(1)、通过对象访问静态成员变量;
(2)、通过类名访问静态成员变量;
4、静态成员函数:
(1)、所有对象共享同一个函数;
(2)、静态成员函数只能访问静态成员变量
class Person
{public:static int m_A;int m_B;static void func1(){m_A = 150;//m_B = 200; 非静态成员变量不可访问cout << "Person中的m_A为:"<<Person::m_A << endl;}private:static void func2(){cout << "静态成员函数func2()的调用" << endl;}
};
int Person::m_A = 10;
由上诉代码可知,静态成员变量由类内声明,类外初始化,静态成员函数func1只能访问静态成员变量,不能访问非静态成员变量。
下诉代码作为检验
//1、通过对象访问Person p1;p1.func1();//2、通过类名访问Person::func1();
输出检验如下:
Person中的m_A为:150
Person中的m_A为:150
请按任意键继续. . .
C++ 静态成员变量相关推荐
- 为什么静态方法无法直接调用非静态成员变量和方法
静态方法无法直接调用非静态成员变量和方法 看到这句话,要想到形容的是这样的如下 静态方法里面无法调用非静态变量 下面在写一个对比非静态的方法和静态方法调用变量对比 问题原因 静态变量和静态的方法是属于 ...
- C++ 笔记(18)— 类和对象(this 指针、指向类的指针、类静态成员变量和函数)
1. this 指针 在 C++ 中,每一个对象都能通过 this 指针来访问自己的地址. this 指针是所有成员函数的隐含参数.因此,在成员函数内部,它可以用来指向调用对象. 友元函数没有 thi ...
- 类的静态成员变量和静态成员函数的使用方法三
第五个例子,使用类的静态成员变量 源码打印? #include <stdio.h> class Point { public: Point() { m_nPointCount++; } ~ ...
- 静态成员变量不占用类的内存空间
假定程序运行环境为:操作系统Windows 2000,VC6.0编译环境,X86(80586)CPU处理器(32位小字节序处理器,4字节对齐) class CExample { public: ...
- C++中类的静态成员变量和静态成员函数
静态成员变量: 在类里用static对变量定义,缺省时初始化为0,不能在类中初始化,因为static变量在类实例化之前就已经存在. 在类外用<数据类型><类名>::<静态 ...
- 类中静态成员变量 无法解析的外部符号
[1]如下代码及编译错误 如标题,不做赘述. [2]原因及解决方案 原因:之所以报如上编译错误,因为静态成员变量未初始化. 解决方案:类中静态成员需要在类外进行初始化.其格式为:类型 类名::静态成员 ...
- 静态成员变量和非静态成员变量的5个主要区别
1.从保存位置: a) 静态成员变量: 方法区的静态区域 b) 非静态成员变量: 堆内存中的对象空间里面 2.从书写格式上看: a) 静态成员变量: 在数据类型前面多了一个static修饰 b) 非静 ...
- C++中的静态成员变量
文章目录 1 C++中的静态成员变量 1.1 C++中静态成员变量的使用方法 1 C++中的静态成员变量 1.1 C++中静态成员变量的使用方法 在C++中可以定义静态成员变量: 静态成员变量属于整个 ...
- C++ static静态成员变量详解
对象的内存中包含了成员变量,不同的对象占用不同的内存(已在<C++对象的内存模型>中提到),这使得不同对象的成员变量相互独立,它们的值不受其他对象的影响.例如有两个相同类型的对象 a.b, ...
- 静态成员变量的初始化,vector类型变量初始化
静态成员变量的初始化,vector类型变量初始化 Posted on 2008-11-24 16:28 浪端之渡鸟 阅读(1620) 评论(0) 编辑 收藏 某些情况下,在写C++类的时候,希望能通过 ...
最新文章
- React-Native原理及生命周期
- AutoX无人车完成1亿美元A轮融资,东风汽车领投,阿里旗下基金入股
- php多用户商城,php多用户商城选择开源的好
- redis入门(02)redis的常见问题
- java初学之stream
- 虚拟机测试必备虚拟机之VirtualBox 使用
- [笔试题]交换两个数不使用第三方变量 深入理解按位异或运算符
- 二级指针与指针数组的关系
- [css] 举例说明常用的cursor取值有哪些?
- linux上ln命令详细说明
- treeset 是有序吗_TreeSet如何实现有序?
- replaceFirst、replaceAll、replace区别
- python机器学习库sklearn——线性回归
- html设计有项目的页面,HTML+CSS项目开发经验总结(推荐)
- IOS 打包后安装崩溃,debug正常运行
- FatFs- 通用FAT文件系统模块
- android 查看路由器ip,如何查看路由器ip地址进入登录页面
- 【统一数据开发平台】-OLAP分析平台和实时数仓实践和优化
- 解决关于win10下eclipse代码格式化不生效问题
- Linux下删除特殊字符的文件或文件夹
热门文章
- 农村电商的未来:分享农业
- QT 通过label控件显示图片,图片能自适应label的大小
- 可编程 USB 转串口适配器开发板 S2S 功能介绍
- blackfin dsp(一)cces的使用
- 申请iso9001认证的好处?
- ffmpeg制作视频播放器(十四)XPlay2 read接口
- matlab r2015b激活之后出错,ubuntu14.04下 安装matlabR2015b遇到的一些问题及其解决方法...
- 9.23 Intel DSE编译器开发一面(40min)
- 【算法复习】寻路算法1 - A星 A star
- 将html中table内容转为电子表格导出