什么是静态数据成员?

数据成员我们之前学过,是对象的属性。
同一个类,不同的对象,可能拥有不同的属性

例如一个车行,不同的车有不同的颜色,不同的耗油量。。。等等属性

但是当我们统计一个公有的数据,用数据成员有点麻烦
比如每一辆Car,里面有一个数据成员CarNum,记录了车行的总车数,
如果每一个对象,都分别带着CarNum这个数据成员,会有些不方便。

为此,我们需要一个类公有的数据成员,就是静态数据成员
每个对象与静态数据成员关系如下图

静态数据成员的定义以及初始化

静态数据成员用关键字 “static” 定义
如果静态数据成员是public,可以在主函数里面
用 类名::静态数据成员名 访问

由于静态数据成员是类公有的,所以不能在构造函数初始化,应该在类定义完成后,对其进行初始化

定义格式:

class Car
{
public:static int CarNum;Car(){CarNum++;}//新建一个Car对象时候,车数量加一~Car(){CarNum--;}//销毁一个Car对象时候,车数量减一
};
int Car::CarNum=0; //静态成员函数的初始化

什么是静态成员函数?

上面我们了解了什么是静态数据成员。
静态成员函数也可以类比,是一个类的共有的成员函数

定义格式:

class Car
{
public:static int CarNum;Car(){CarNum++;}//新建一个Car对象时候,车数量加一~Car(){CarNum--;}//销毁一个Car对象时候,车数量减一static int getCarNum(){return CarNum;}
};
int Car::CarNum=0; //静态成员函数的初始化int main()
{Car::getCarNum();  //静态成员函数调用return0;
}
几点注意:
  • 由于静态成员函数是共有的,所以参数列表里面没有隐含this指针,不可以用const修饰静态成员函数
  • 静态成员函数只能访问静态数据成员,不可以访问普通的数据成员

c++之静态数据成员与静态成员函数相关推荐

  1. 静态数据成员与静态成员函数

    3-6 静态数据成员与静态成员函数 Time Limit: 1000MS Memory limit: 65536K 题目描述 通过本题目的练习可以掌握静态数据成员和静态成员函数的用法 要求设计一个点类 ...

  2. 3-6 静态数据成员与静态成员函数

    3-6 静态数据成员与静态成员函数 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 通过本题 ...

  3. C++学习(五) 静态数据成员和静态成员函数

    文章目录 1.静态成员: 1.1.说明 1.2.格式 2.静态成员函数 2.1.说明 2.2.格式 1.静态成员: 1.1.说明 静态成员包括静态数据和静态成员函数. (1).静态数据成员的定义与普通 ...

  4. 类的静态数据成员和静态成员函数

    一.什么是类的静态成员 静态成员变量和全局变量都存储在全局/静态区,它们都是在程序编译时创建,直到编译结束才被收回.所以全局变量和静态成员变量的功能差不多,只是创建的方式不同,类的静态成员创建在类中, ...

  5. C++类的静态数据成员和静态成员函数

    目录 公有属性 静态数据成员 静态成员函数 公有属性 一些类对象可能会具有一些相同的属性,如果用普通数据成员来描述这些相同的属性,这意味着我们需要给每个对象的这个数据成员设定相同的值,如果改变类对象相 ...

  6. [C++] 类的静态成员 (静态数据成员 和 静态成员函数)

    目录 一.声明静态成员: 二.定义静态成员: 三.使用类的静态成员: 四.静态成员类内初始化: 五.静态成员与普通成员的区别: 六.案例代码: 类内的静态成员包括: 静态数据成员 和 静态成员函数. ...

  7. 静态数据成员和静态成员函数

    转载自:https://blog.csdn.net/computer_liuyun/article/details/29235111 c++中的static静态数据成员和静态成员函数应该是让大家比较头 ...

  8. 静态数据成员和静态成员函数(static)

    目录 一.关于静态成员 二.静态数据成员和普通数据成员的共同点 三.为什么要使用静态数据成员 四.关于静态数据成员的初始化 五. 静态成员的访问方式 六.静态成员函数 1.与静态数据成员不同,静态成员 ...

  9. 【C++之静态数据成员和静态成员函数】计算商品总销售款和平均售价

    题目要求 商店销售某一商品,商店每天公布统一的折扣(discount).同时允许销售人员在销售时灵活掌握售价(price),在此基础上,对一次购 10 件以上者,还可以享受 9.8 折优惠.现已知当天 ...

最新文章

  1. springmvc二十二:annotation-driven标签
  2. 5、时间日期的处理:Java Date类、Calendar类详解
  3. oracle中匹配函数怎么用,ORACLE 使用正则表达式的函数
  4. OpenGL Multi-Indirect Draw小行星的实例
  5. oracle 向右去整,使用table表格无端的整体向右偏移一段距离
  6. MAC下安装与配置MySQL [转]
  7. kbmmw 的HTTPSmartService中的跨域访问
  8. Java笔记(1)黑马刘意_Java入门_2019_idea版
  9. EDA与VHDL题目——38译码器
  10. LeetCode 三等分(题解+优化过程)
  11. 如何搭建个人网站(详细完整,附阿里云视频教程推荐)
  12. 大数据的价值可以体现在哪些方面?
  13. Linux常用命令——jwhois命令
  14. ie浏览器调用本地文件无反应_我的ie浏览器为什么打不开本地的网页文件啊?...
  15. 浏览器内核之渲染基础
  16. 带头结点单链表的基本使用
  17. Python发送邮件的类
  18. 香槟分校计算机研究生专业,伊利诺伊大学香槟分校研究生计算机系统专业排名...
  19. 无法启动此程序因为计算机中丢失d3dx941,d3dx_941.dll最新版
  20. 李永乐六套卷-2021

热门文章

  1. CMIIT ID是什么意思
  2. Java小白从0开始:知识点(3)
  3. 新鲜出炉: IE8 beta1 的下载地址以及官方论坛
  4. 高级语言程序设计作业题及答案
  5. 压缩工具gzip、bzip2、xz
  6. 一个集成阿里云、腾讯云、七牛云对象存储的SDK
  7. mysql 查看server id_图解MySQL | [原理解析] MySQL使用固定的server_id导致数据丢失
  8. 计算机常识--工具软件篇
  9. 考研复试50条,上岸第一条!
  10. java计算机毕业设计航空机票预订系统(附源码、数据库)