静态数据成员与非静态数据成员

静态数据成员

  用static来声明静态成员,它是类的一部分,有该类中的所有对象共同使用和维护,实现类中数据的共享(静态区),要受private控制符影响。

非静态数据成员

  类的每个实例都有一份拷贝(动态区)。

从内存的角度去看

  类的静态成员(数据成员和函数成员)为类本身所有,在类加载的时候就会分配内存,可以通过类名直接访问
  非静态成员(数据成员和函数成员)属于类的实例所有,所以只有在创建类的实例的时候才会分配内存,并通过实例去访问。
  类的静态成员在类加载的时候就已经分配内存,而此时类的非静态成员尚未分配内存,访问内存中不存在的东西自然会出错。

注意

  类的静态数据成员是静态存储,它是静态生存周期,必须进行初始化。静态数据成员的初始化在类体外进行,前面不加static以免与一般静态变量或者对象混淆。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/494970.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【译】微型ORM:PetaPoco

PetaPoco是一款适用于.Net 和Mono的微小、快速、单文件的微型ORM。 PetaPoco有以下特色: 微小,没有依赖项……单个的C#文件可以方便的添加到任何项目中。工作于严格的没有装饰的Poco类,和几乎全部加了特性的Poco类Insert/Delete/Update/Save …

李飞飞公布谷歌云TPU、AutoML、行业方案等多项进展,AI云计算成谷歌全新增长点...

来源:全球人工智能摘要:7 月 24 日-26 日,Google Cloud NEXT 18 大会在美国旧金山举行。7 月 24 日-26 日,Google Cloud NEXT 18 大会在美国旧金山举行,Google Cloud作为谷歌人工智能未来业务发展的基础性平台&#xf…

new/delete和malloc/free的区别

malloc/free和new/delete的区别 共同点 都是从堆上申请空间,并且需要用户手动释放。 不同点 1、malloc/free是函数,new/delete是操作符。 2、malloc需要用户区手动计算空间的大小,new直接再后面跟上空间的类型就好。 3、malloc返回的是…

this的用法添加样式给tr或者div

onmouseover与onmouseout事件处理器,分别对应为鼠标移上去和鼠标移开时触发。οnmοuseοver"this.classNamemenu_title2;" 是鼠标移到该单元格上去时应用的css样式为“.menu_title2”的样式 οnmοuseοut"this.classNamemenu_title;"是鼠标离…

C语言中生成可执行程序的过程

预处理:展开头文件/进行宏替换/去掉注释/条件编译 编译:检查语法是否有错误,生成汇编代码 汇编:将汇编代码转换可供机器识别的机器码 链接:将多个文件链接到一起生成可执行程序

Gartner:2018年十大科技趋势与其对IT和执行的影响

来源:云技术实践摘要:Gartner每年发布的十大战略科技趋势一直备受关注,但企业往往会将50%以上的预算花在基础设施和执行上。因此,了解十大科技趋势与其对IT和执行的影响十分必要。在本周的Gartner CIO峰会期间,Gartner…

C++读取INI文件

Windows操作系统专门为此提供了6个API函数来对配置设置文件进行读、写:GetPrivateProfileInt() 从私有初始化文件获取整型数值GetPrivateProfileString() 从私有初始化文件获取字符串型值GetProfileInt 从win.ini 获取整数值GetProfileString 从win.ini 获取字符串值…

专栏 | 李航教授展望自然语言对话领域:现状与未来

来源:机器之心摘要:原华为诺亚方舟实验室主任、现已加入字节跳动 AI Lab的李航教授近日发表博客,对自然语言对话领域的现状和最新进展进行总结,并展望了未来的走向。1. 引言语音助手、智能客服、智能音箱、聊天机器人,…

浅析智能指针

为什么要有智能指针? 1.什么是智能指针? 智能指针是一个类,这个类的构造函数中传入一个普通指针,析构函数中释放传入的指针。智能指针的类都是栈上的对象,所以当函数(或程序)结束时会自动被释放…

论强化学习的根本缺陷

来源:AI 科技评论摘要:本文来自斯坦福大学博士生 Andrey Kurenkov 在 The Gradient 上发表的文章。在本文中,我们将讨论人工智能的一个核心领域——强化学习——的局限性。在这个过程中,起初我们将通过一个有趣的例子提出我们要讨…

c语言常用输出格式

在C语言中常用的是靠printf(" 输出的格式",输出的内容); 来进行输出,所以要掌握一些关于输出的格式,下面将用代码的形式来简单说明: char c;char s[20]; int i1234;float f1.234567894567879; double d0.123…

辗转相除法--最大公约数/最大公倍数

什么是辗转相除法? 辗转相除法, 又名欧几里德算法(Euclidean algorithm),是求最大公约数的一种方法。最早出现在公元前300年古希腊著名数学家欧几里得的《几何原本》》(第VII卷,命题i和ii)中。而在中国则可以追溯至东汉…

最后期限已至,高通收购恩智浦全剧终!中国一刀切断高通物联网全局梦!

来源:物联网智库摘要:没有一种商业模式可以永享特权。物联网时代,当专利和芯片两大支柱业务均受到剧烈冲击和威胁之下,如何创新以自救,正是考验高通全面战略能力的关键时刻,恩智浦是当前高通给出的最好答案…

DATEDIFF 函数使用

DATEDIFF 函数 [日期和时间] 返回两个日期之间的间隔 返回 Variant (Long) 的值,表示两个指定日期间的时间间隔数目。语法DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])DateDiff 函数语法中有下列命名参数:部分 描述interval …

跳石板(通俗易懂的思路和方法)

所用到的知识 STL中的vector容器 动态规划思想 算法中的min 编程思想 将1 - M个看成一排,为其取个名字叫Slab(数组),并在走之前将这一排石板都初始化为0,然后开始走,每到一块是班上就在这块是石板上写下…

使用sar进行性能分析

sar可用于监控Linux系统性能,帮助我们分析性能瓶颈。sar工具的使用方式为”sar [选项] intervar [count]”,其中interval为统计信息采样时间,count为采样次数。 下文将说明如何使用sar获取以下性能分析数据: 整体CPU使用统计各个C…

斯坦福证明神经网络能直接在光学芯片上训练

来源:全球人工智能摘要:据报道,美国斯坦福大学的研究人员已经证明,可以直接在光学芯片上训练人工神经网络。据报道,美国斯坦福大学的研究人员已经证明,可以直接在光学芯片上训练人工神经网络。这一重大突破…

蘑菇阵(动态规划)

题目: 现在有两个好友甲和B,住在一片长有蘑菇的由n * m个个方格组成的草地,A在(1,1),B在(N,M)。现在甲想要拜访B,由于她只想去乙的家,所以每次她只…

用Keil-MDK开发TQ2440裸机程序入门教程——LED流水灯实现

觉得此编文章很详实,故转载之,来自http://www.amobbs.com/thread-5281512-1-1.html 开发板也差不多买了半年了, 以前照着教程用的是软件是ADS,在win7下老是崩溃, 后来才知道ADS早就不提供支持了, ADS的公司怎样怎样了...(此处省略300..) 然后我就捣鼓着怎…

关于量子计算,你应该知道的七个事实

来源:资本实验室摘要:在很多人眼中,量子计算机被认为能够完成经典计算机所不能完成的任务。聚焦前沿科技创新与传统产业升级在很多人眼中,量子计算机被认为能够完成经典计算机所不能完成的任务。事实上,如果量子计算机…