静态成员(变量与函数)

1、静态成员变量的语法、访问、特点(共享、类内声明类外初始化)

静态成员变量在class中只做声明,并没有初始化所以不会分配内存。

(1) 非静态成员变量必须通过对象来访问。

(2) 静态成员变量可以通过对象访问、也可以通过类名访问。

(3) 非静态成员变量每个对象独有。

(4) 静态成员变量共享数据,归本类型的对象共享。

(5) 静态成员变量也具有访问控制权限。

2、const静态成员变量(类级别的const常量,建议使用类枚举)

1、const静态成员变量一般在类内定义。

2、类作用域下的常量。

3、static const int s_count = 0;

3、静态成员函数语法、访问及特点

1、静态成员函数禁止访问非静态成员变量

静态成员函数同样也可以使用类名访问:

4、静态成员函数特点

I 静态成员函数只能访问静态成员变量,不能够访问非静态成员变量

II 静态成员函数也具有访问控制权限

III 非静态成员函数既可以访问静态成员变量、也可以访问非静态成员变量

5、静态成员函数的作用:封装静态成员变量、提供类作用域

C++中对封装的语法支持——静态成员的更多相关文章

  1. C++中对封装的语法支持——this指针

    this指针 1.this概念 (1) This指针就是用于成员函数区分调用对象. (2) This指针由编译器自动传递,无须手动传递,函数内部隐藏了this指针参数,本类类型的指针. (3) 编译器 ...

  2. C++中对封装的语法支持——重载运算符

    重载运算符 1.对于自定义类型,编译器不知道运算规则,而重载运算符会将两个对象相加转换为函数调用. 2.运算符重载转换的函数调用,函数名字是固定的规则. (1) 如果重载+号运算符,函数名字就是:op ...

  3. C++中对封装的语法支持——友元

    友元 1.友元就是授权给某个函数.每个成员函数.某个类具有访问类内部私有成员的权限. 2.为什么用友元?友元可以允许某个类.函数直接访问类内部私有数据,减少函数调用开销,提高效率. 3.友元函数不是成 ...

  4. Vs 2015 中一些新的语法支持

    又是语法糖. 1, if (tdata != null && tdata.Data != null) 等价于   if (tdata?.Data != null)   2, int a ...

  5. EditPlus 中添加 Win32 ASM 语法支持

    将以下内容保存为 Win32Asm.stx:然后选“工具”.“配置用户工具”.“设置与语法”.“添加”. “描述”=Win32Asm.“扩展名”=asm .”语法文件”选存入之文件,确定即可. #TI ...

  6. js中添加node.js语法支持

    File——>settings

  7. 12.QT项目中启用c++11语法支持

    greater Than(QT_MAJOR_VERSION, 4): CONFIG += c++11 less Than(QT_MAJOR_VERSION, 5): QMAKE_CXXFLAGS += ...

  8. Python3中的yield from语法

    Python3中的yield from语法 by Kay Zheng Tags: python, 协程, generator 30 March 2014 2016-2-23 更新 這篇文章是兩年前寫的 ...

  9. C++内存中的封装、继承、多态(下)

    上篇讲述了内存中的封装模型,下篇我们讲述一下继承和多态. 二.继承与多态情况下的内存布局 由于继承下的内存布局以及构造过程很多书籍都讲得比较详细,所以这里不细讲.重点讲多态. 继承有以下这几种情况: ...

随机推荐

  1. 渗透测试=基于白名单执行payload--Ftp

    还是自己动手复现亮神课程的过程. 环境 靶机win7 攻击机 kali Ftp.exe简介: Ftp.exe是Windows本身自带的一个程序,属于微软TP工具,提供基本的FTP访问 说明:Ftp.e ...

  2. 一起来看一下Java中的Annotation注解

    目录: 一. 什么是Annotation 二. Annotation的作用 2.1 编译器使用到的注解 2.2 .class文件使用到的注解 2.3 运行期读取的注解 三. 定义Annotation ...

  3. .NET进阶篇04-Serialize序列化、加密解密

    知识需要不断积累.总结和沉淀,思考和写作是成长的催化剂这篇很轻松,没有什么费脑子的,所以解析较少,代码较多,为数不多的拿来即用篇整个章节分布请移步 内容目录 一.概述二.序列化1.二进制文件2.XML ...

  4. ESP8266开发之旅 基础篇① 走进ESP8266的世界

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  5. Bootstrap应用核心

    Bootstrap是当前世界最受欢迎的响应式.移动设备优先的门户和应用前端框架.它不是单一的CSS或JavaScript框架,而是完整的HTML.CSS.JavaScript框架,你可以仅通过Boot ...

  6. JVM 垃圾收集与内存分配

    判断对象是否还活着 引用计数法 给对象添加引用计数器,添加加1,引用失效减1,如果为0就是不可使用的.问题是不能解决互相引用带来的问题 可达性分析法 以GC Roots为起点,判断到一个对象是否有引用 ...

  7. win7更新,360手机安装谷歌框架

    这两天把11平台被卸载了,不能打竞技场了,很伤心. 成年男子,总要找点有趣的事情去做.我准备洗心革面,好好学习.(巴拉巴拉巴拉一万字.) 首先第一件事情就是重装系统,(由于买了个假显卡,win10以上 ...

  8. matlab 7遇到的错误 解决方法

    安装路径 参考D:\matlab7 安装最后一步弹出 未找到解决方法.不过没有发现有何影响. 安装完成后出现 1. To configure Real-Time Windows Target you ...

  9. Unity Dropdown

    unity DropDown控件应用很简单 代码如下 frameDpdown.options.Clear(); //Dropdown.OptionData optDataFrame = new Dro ...

  10. Mac OSX 10.7.3 以上系统安装JDK1.7失败 Java from Oracle requires Mac OS X 10.7.3 or later.

    解决办法: 打开JDK dmg安装包,把里面的pkg安装包拖出来然后解包 xar -xf JDK\ 7\ Update\ 40.pkg ./Java 修改Distribution文件找到pm_inst ...