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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 正则表达式匹配所有数字,包括带小数点的数字 包含限制小数位数、整数位数「建议收藏」

    正则表达式匹配所有数字,包括带小数点的数字 包含限制小数位数、整数位数「建议收藏」letreg=/^[+-]?(0|([1-9]\d*))(\.\d+)?$/g;

    2022年6月15日
    30
  • 微服务架构(java环境&tomcat)

    微服务架构(java环境&tomcat)

    2021年5月28日
    97
  • Swagger注解-@ApiModel 和 @ApiModelProperty

    @ApiModel使用场景在实体类上边使用,标记类时swagger的解析类概述提供有关swagger模型的其它信息,类将在操作中用作类型时自动内省属性属性名称数据类型默认值说明valueString类名为模型提供备用名称descriptionString“”提供详细的类描述parentClass<?>parentVoid…

    2022年4月8日
    201
  • SQL怎么实现模糊查询[通俗易懂]

    SQL怎么实现模糊查询[通俗易懂]模糊查询的语句一般如下:SELECT字段FROM表WHERE某字段LIKE条件;关于条件部分,有以下匹配模式:1.%:表示零个或多个字符。可以匹配任意类型和任意长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。select*fromuserwhereusernamelike’%张%’;将会把user这张表里面,列名username中含有张的记录全部查询出来。如果需要找到user这张表里面,字段username中既有张,又有李的记录,可以使用and

    2022年5月7日
    124
  • navicat premium mac激活码【2021最新】

    (navicat premium mac激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~70YZ…

    2022年3月26日
    165
  • idea远程debug weblogic_idea远程调试代码

    idea远程debug weblogic_idea远程调试代码https://blog.csdn.net/u013559614/article/details/123375027Idea远程调试tomcatIdea配置配置remote传输方式,默认为Socket​Socket:macOS及Linux系统使用此种传输方式;​Sharedmemory:Windows系统使用此种传输方式。​调试模式,默认为Attach​Attach:此种模式下,调试服务端(被调试远程运行的机器)启动一个端口等待我们(调试客户端)去连接;​

    2022年9月10日
    0

发表回复

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

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