博客
关于我
C++中的static成员函数以及static成员变量详解
阅读量:337 次
发布时间:2019-03-04

本文共 1034 字,大约阅读时间需要 3 分钟。

static成员变量和成员函数在C++编程中经常被使用,但了解它们的工作原理和使用方法至关重要。static变量和成员函数的定义方式以及调用方式都有其独特的特点,这些特点需要程序员特别注意。

在C++中,static成员变量的存储位置与普通变量有所不同。与堆区和栈区存储的变量不同,static成员变量是储存在全局区中的。全局区中的存储区域包括代码区和数据区,因此static成员变量在程序运行之前就会被初始化,并且在程序结束时会被系统释放。

关于static成员函数的调用,程序员需要注意以下几点:

  • static成员函数的调用的成员变量必须是static成员变量,不能调用普通的成员变量。因为编译器无法确定调用的是哪个对象的成员变量,因此只能使用static成员变量。

  • static成员变量并不占用类的内存空间,它们是全局区中的变量,类似于全局变量,只在程序运行结束时被释放。

  • static成员变量属于所有对象共同拥有的变量,它并不属于任何一个对象的成员属性。

  • static成员函数和成员变量都没有this指针,它们不属于任何特定的对象。

  • static成员变量可以被继承派生类访问,但是在派生类中只会有一份拷贝,而不是每个对象都有自己的拷贝。前提是派生类对该成员变量进行了合理的继承声明,并且该成员变量是公有的。

  • 在实际编程中,static成员变量和成员函数经常被用作类的内部配置参数或全局配置参数。例如,在上面的代码示例中,Student类定义了一个static成员变量m_rate以及一个static成员函数set_rate。类外可以通过类名访问这些static成员变量或成员函数。

    需要注意的是,static成员变量在类外初始化时,必须使用类名加上::符号来访问。例如,在代码示例中,Student::m_rate = 5表示在全局区中初始化了一个static成员变量。

    在使用static成员函数时,程序员可以直接通过类名调用,或者通过对象指针进行调用。例如,在main函数中,Student::set_rate(6)可以通过类名直接调用static成员函数。然而,调用static成员函数时,不能使用对象的指针或成员函数调用方式。

    总之,static成员变量和成员函数提供了一种在类和程序间共享变量和函数的方式,同时也避免了多个对象之间的内存占用。但是,程序员在使用static成员变量和函数时需要特别注意其调用方式和存储方式,以确保程序的正确性和高效性。

    转载地址:http://kjme.baihongyu.com/

    你可能感兴趣的文章
    自己的利益靠自己争取,开发就是这么坑!
    查看>>
    「初级篇」跟我一起学docker(四)--容器的基本操作
    查看>>
    22 岁毕业做程序员的「普通」人,50 岁时的人生轨迹是怎样的?
    查看>>
    『高级篇』docker之安全认证kubernetes命令熟悉(40)
    查看>>
    「docker实战篇」python的docker-抖音web端数据抓取(19)
    查看>>
    「小程序JAVA实战」小程序和后台api通信(28)
    查看>>
    scala上界与下界、协变与逆变
    查看>>
    java稀疏数组
    查看>>
    springboot解决前后端交互跨域问题
    查看>>
    宝马、沃尔沃、奇瑞纷纷布局,区块链将颠覆汽车行业?
    查看>>
    全球数字货币加快研发
    查看>>
    数字化助力金融科技,实现产业良性循环
    查看>>
    2020-11-18(失败的一天)
    查看>>
    2020-11-23(彻底理解KMP)
    查看>>
    DMB DSB ISB 简介
    查看>>
    常用的IDC函数
    查看>>
    BUUCTF 新年快乐 内涵的软件 Java逆向解密 刮开有奖
    查看>>
    虎符杯——虚拟机逆向
    查看>>
    angr学习笔记(7)(malloc地址单元符号化)
    查看>>
    angr学习笔记(9)(添加约束)
    查看>>