静态成员变量

在一个类中,若将一个成员变量声明为static,这种成员成为静态成员变量,与一般的数据成员不同,无论建立了多少个对象,都只想有一个静态数据的拷贝,静态成员变量,属于某个类,所有对象共享
静态变量,在编译阶段就分配空间,对象还没有创建时,就已经分配空间

  1. 静态成员变量必须在类内中声明,在类外定义
  2. 静态数据成员不属于某个对象,在为对象分配空间中不包括静态成员所占空间
  3. 静态数据成员可以通过类名或者对象名来引用

静态成员函数

  1. 可以访问静态的成员变量,不可以访问普通的成员变量

  2. 普通成员函数 都可以访问

  3. 静态成员函数也有权限

  4. 可以通过对象访问,也可以通过类名进行访问

      #include<iostream>using namespace std;class Person{public:Person(){//m_Age = 10;}static int m_Age;//加入static 静态成员变量,会共享数据//静态成员变量,类内声明,类外初始化int m_A;//静态成员函数//1.不可以访问  普通的成员变量//2.可以访问  静态成员变量//3.静态成员函数也是有权限的static void func(){//m_A = 10;m_Age = 100;cout << "func调用" << endl;}//普通成员函数,可以访问普通成员变量,也可以访问静态成员变量void myFunc(){m_A = 10;m_Age = 100;}private:static int m_other;//私有权限,类外不能访问static void func2(){cout << "func2调用" << endl;}};int Person::m_other = 0;int Person::m_Age = 0;//类外初始化void test01(){//1.通过对象访问属性Person p1;p1.m_Age = 10;Person p2;p2.m_Age = 20;cout << "p1=" << p1.m_Age << endl;cout << "p2=" << p2.m_Age << endl;//共享数据,都是20,以最近一次赋值为准//2.通过类名访问属性//因为通过类名访问,所以不能在类内初始化cout << "通过类名访问Age" << Person::m_Age << endl;//cout << "other=" << Person::m_other << endl;//私有权限在类外无法访问//静态成员函数调用//不可以访问 普通的成员变量p1.func();p2.func();Person::func();//Person::func2();//静态成员函数设为私有,类外不能访问}int main(){test01();system("pause");return 0;}
    

const静态成员属性

如果一个类的成员,既要实现共享,又要实现不可改变,就用static const 修饰

定义静态const数据成员时,最好在类内部初始化

c++中静态成员变量和静态成员函数相关推荐

  1. 类中的静态成员变量和静态成员函数

    static静态成员函数 1.static 修饰成员变量 2.static修饰静态成员函数 引子: 静态成员函数: 注意: 3.const 修饰静态成员 静态成员案例 案例1:静态成员 统计类 实例化 ...

  2. C++中静态成员变量与静态成员函数

    Hello,我是你们的好朋友一一,一一这次呢想跟大家分享的知识点是静态成员变量和静态成员函数. So what is the 静态成员??? 1.静态成员: 在类定义中,它的成员(包括成员变量和成员函 ...

  3. C++静态成员变量和成员函数

    静态成员变量和成员函数 简介 sizeof不将静态成员变量的大小计算在内 可以通过类名来访问静态成员 静态成员函数不能访问类的非静态成员 简介 static加在局部变量的前面改变其存储类型使之成为静态 ...

  4. C++面试题-面向对象-静态成员变量以及静态成员函数

    C++面试题-面向对象-静态成员变量以及静态成员函数 问:在类中,静态数据成员和普通数据成员有何区别? 答: 普通数据成员属于类的对象,对象被创建后,普通数据成员才会分配内存.静态数据成员属于整个类, ...

  5. C++静态成员变量与静态成员函数

    类的静态成员有两种:静态成员变量和静态成员函数,语法是在普通成员变量和成员函数前加static关键字. 0.定义 class CRect{ public:void show();//普通成员函数sta ...

  6. C++的静态成员变量和静态成员函数

    C++的静态成员变量和静态成员函数 静态成员变量和静态成员函数算是C++面向对象编程中的一个重点和难点,这里的静态具体指什么呢?与普通的成员变量和成员函数相比,静态成员函数和静态成员变量是属于类的,而 ...

  7. 静态成员变量和静态成员函数

    静态成员变量 一个类中可以有一个或多个静态成员变量,所有的对象都共享这些静态成员变量,都可以引用它. static 成员变量和普通 static 变量一样,都在内存分区中的全局数据区分配内存,到程序结 ...

  8. qt 静态成员变量_Qt 静态成员函数的调用非静态成员变量,非静态成员函数

    在多人开发的项目中,一些通用的工具类接口可以用静态成员函数.方便调用,并且不容易调用错误. 静态成员函数不传递this指针(不能->),不识别对象个体,所以经常用于对静态数据成员进行操作.不能操 ...

  9. c++ ——静态成员变量和静态成员函数

    前言 c++ 静态成员变量用static 关键字来声明,是整个类的数据成员,其存储不占用某个具体对象的空间,其存储在静态存储区. c++ 静态成员函数用static 关键字来声明,用于处理静态成员变量 ...

最新文章

  1. HTML全局属性data-
  2. 开发日记-20190815 关键词 读书笔记《Linux 系统管理技术手册(第二版)》DAY 23
  3. win7 easybcd 安装centos7.5 双系统
  4. iptables 防火墙的基本使用
  5. iOS coredata 多表查询
  6. Redis:分布式锁Watch
  7. MATLAB_排列组合_组合生成程序
  8. 高效 保活长连接:手把手教你实现 自适应的心跳保活机制
  9. java中的算数运算符号用法与原理分析
  10. 腾讯再开源三项技术,提升企业开发及运营效率
  11. 【LeetCode】【数组】题号:*303,区域和检索
  12. bonecp通过servicename连接oracle,使用Java连接池连接Oracle数据库
  13. jpg格式电脑怎么弄_电脑上图片改为jpg格式方法_照片怎么改为jpg格式-win7之家
  14. NISP二级复习题库
  15. android获取SIM卡信息和手机号码
  16. 人工智能导论 第二章 搜索技术
  17. 入门级node+uni-app开发即时通讯聊天室(3)用户的搜索以及好友添加(二)
  18. java重命名_java实现文件重命名的方法
  19. 【CSS随笔】弹性盒子的flex属性
  20. 连续凸逼近(SCA)

热门文章

  1. 关于background-*的一些属性
  2. 【SQL】分组数据,过滤分组-group by , having
  3. 8.动态规划(1)——字符串的编辑距离
  4. [转]Web Api系列教程第2季(OData篇)(二)——使用Web Api创建只读的OData服务
  5. some fragments
  6. memcpy、memmove、memset、memchr、memcmp、strstr详解
  7. POJ 3233 Matrix Power Series 矩阵快速幂 + 二分
  8. 读《深入分析Java Web技术内幕》
  9. 当代国人绝难做到的10件平常事
  10. 服务器能否只做c盘系统,我的云服务器只有一个c盘