在c++中下面对静态数据成员的描述中,正确的是( )。

A、静态数据成员是类的所有对象共享的数据B、类的每个对象都有自已的静态数据成员C、类的不同对象有不同的静态数据成员值D、静态数据成员不能通过类的对象调用请给出解释... A、静态数据成员是类的所有对象共享的数据
B、类的每个对象都有自已的静态数据成员
C、类的不同对象有不同的静态数据成员值
D、静态数据成员不能通过类的对象调用
请给出解释
展开
 我来答
ebdhfaf
推荐于2018-03-13 · TA获得超过1288个赞
知道小有建树答主
回答量:1181
采纳率:0%
帮助的人:193万
展开全部
*** 我主要说的关键是“静态成员是属于类的”,而不属于任何对象所有 ***

在此对一些内容作详细的解释,其中小部分与楼上有点相同,但我说的关键处,与它不同,并修改一些说法。

首先,我在这里把楼主的“静态成员”和“静态方法”,分别对应下面的“静态数据成员”和“静态成员函数”。并把他们都成为静态成员。(它们实际是同一个概念的不同说法。)

“静态成员是属于类的,由该类的全体对象共享”------就是对是这样的

“无论你建立了多少个该类的对象,静态成员在内存上只有一个”------我要说的是,无论你建多少个该类的对象,所有成员函数在内存上也只有一个

为什么说静态成员是属于类的呢??

因为,
我们假设 class A };并定义对象 A abc;
一般的引用类的成员的方法是通过对象去引用:abc.i; abc.display;。
但可以通过类 A::i来引用i , 通过A::display()来引用display(). 《这里是要特别要注意的!!!》
而普通成员就不行,
虽然不管是静态成员还是普通成员,在内存里只有一个副本。但从这个角度去看,静态成员是属于类的。

对于静态成员函数,我们也许还分不清楚这个问题,但是,
特别是对于静态数据成员,我们就很容易理解了。
如果不定义为静态数据成员,那么每个对象都分别有一个i的副本(拷贝)。但定义为静态数据成员之后,所有的对象共享有一个i的副本,就是说i在内存里就一个副本。
那么,不同对象引用i,对i的改变的话, 其他对象中i的值也会被改变,而且所有对象的值都是相同的。
在引用静态数据成员时,可以不通过对象而通过类,静态数据成员在内存只有一个,而且可以通过类来引用。这是静态数据成员属于类,很明显的。

这是实现不同对象间数据共享的一种方法。

静态成员函数,与静态数据成员类似。就不说,需要注意的是,它在内存里始终只有一个副本(普通成员函数也一样)。

关于静态成员的生命周期,在此就不多说了。
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
zhaoshuzhaoshu
2011-06-10 · TA获得超过130个赞
知道答主
回答量:91
采纳率:0%
帮助的人:63.6万
展开全部
A
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
HJQSIMON
2011-06-08
知道答主
回答量:31
采纳率:0%
帮助的人:18.9万
展开全部
A
静态数据成员定义属于类的所有对象
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式