C++中的static成员函数以及static成员变量详解「建议收藏」

C++中的static成员函数以及static成员变量详解

大家好,又见面了,我是全栈君。

static成员变量,在编程中我们时常都会遇到,那么你是否对static变量以及static成员函数有一定深入的认识呢?

static定义的成员变量,存储的区域是内存四区(栈区、堆区、全局区、代码区)中的全局区,在程序运行之前就已经生成在全局区中,直到程序运行结束才会被系统释放。

class Student { 
   
private:
	static int m_rate;        // 类内定义static变量
public:
	static void set_rate(const int& x) { 
    m_rate = x; }
};

int Student::m_rate = 5;     // 类外初始化static变量

int main()
{ 
   
	Student::set_rate(6);    // static 成员函数可以直接使用类名进行访问,也可以使用对象进行调用访问
	system("pause");
	return 0;
}

在C++中有时会定义一些static变量,同时也会定义一些static成员函数。对于static成员函数以及属性的调用需要注意的点有以下几个:

1.static成员函数的调用的成员变量(属性)只能够是static成员属性,不能够调用普通成员变量属性(因为编译器无法确定调用的是哪个对象的成员属性);

2.static成员变量(属性)并不占用类的内存空间,static成员变量并不存储在类中,存储在全局区;

3.static成员变量(属性)时所有对象共同拥有的一份变量,并不属于任何一个对象成员;

4.static成员属性以及static成员函数都不存在this指针(并不属于任何一个成员);

5.static成员属性能够被继承,可以在派生类中访问到(前提:原有属性为公有,继承为公有继承),但是存储的只是一份数据,没有进行复制多份;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115099.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • b站《史上最全unity3D教程》笔记1-04「建议收藏」

    b站《史上最全unity3D教程》笔记1-04「建议收藏」         

    2022年9月19日
  • android之bundle是什么_什么是bundle

    Bundle,是Android开发中的一个类,用于Activity之间传输数据用。Intent it = new Intent(A.this,B.class);Bundle bundle = new Bundle();bundle.putString(“name”,”张三”);it.putExtrats(bundle);startActivity(it);这样就把name为张三这个数据从A

    2022年3月9日
  • spring 整合 mybatis原理

    spring 整合 mybatis原理SqlSessionFactoryBean的创建1.SqlSessionFactoryBean这个类实现了三个接口,一个是InitializingBean,另一个是FactoryBean,还有就是ApplicationListener接口。下面说明一下实现了这三个接口的,有什么作用InitializingBean接口:实现了这个接口,那么当bean初始化的时候,spring就会调用该接口的实现…

    2022年6月3日
  • 什么叫侧面指纹识别_屏下指纹和侧面指纹触控有什么区别

    什么叫侧面指纹识别_屏下指纹和侧面指纹触控有什么区别指纹识别作为一种生物识别方案,在手机上的应用为用户日常使用带来了极大的便利,从解锁手机到应用加密再到支付等场景,原本需要输密码的繁琐场景如今按一下手指就行。随着手机的发展,指纹解锁也出现了不同的解决方案,比如OPPOK3所采用的目前主流的屏下指纹解锁,以及荣耀9X所采用侧面指纹解锁。那么在实际应用场景中,哪种指纹识别更实用呢?采用了屏幕指纹的OPPOK3与侧面指纹的荣耀9X都有着真全面屏的设计…

    2022年6月30日
  • Pycharm改成中文模式

    Pycharm改成中文模式Pycharm作为一款IDE,经常作为python编译器。很多人在用pycharm时都是英文格式,现在,本文推荐一种可以将其改成中文模式的方法:1.首先,打开pychram中的“File”,找到“Setting”;2.在“Plugins”中找到汉化插件并安装,这样就可以设置成中文。3.如果想改回英文,可以在“已安装”中取消应用插件即可。…

    2022年8月29日
  • Java实现 整型转字符串,位数不足时可以自动补0

    Java实现 整型转字符串,位数不足时可以自动补0代码publicclassStringUtil{/***整型转字符串并格式化*@paramminSize最小大小*@paramseparator分隔符*@paramintNums需要转化的整数*@return字符串*/publicstaticStringformatInt(intminSize,Stringseparator,int…intNums){

    2022年10月18日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号