永发信息网

c++中什么是静态数据成员 什么是静态成员函数 分别有什么作用?

答案:3  悬赏:0  手机版
解决时间 2021-04-05 09:52
c++中什么是静态数据成员 什么是静态成员函数 分别有什么作用?
最佳答案
静态数据成员: 就是说在这个类中是固定的,只有一个。比如说中国人是一个类,那么这个中国人的总人口数就是一个静态数据成员,这个静态数据成员不会跟随某个具体的人,而是正对于这个类的。
静态成员函数,一般这些函数都是用来对这个类进行操作的。例如,你要修改一个静态成员数据,那么需要静态成员函数。

你可以这么想: 静态时,大体的一个类; 动态时,具体的一个类中的对象
全部回答
void Myclass::Copy(Myclass & my)
{
x=my.x;
y=my.y;
}
,不就两句话么。
希望对你有帮助
*** 我主要说的关键是“静态成员是属于类的”,而不属于任何对象所有 ***
在此对一些内容作详细的解释,其中小部分与楼上有点相同,但我说的关键处,与它不同,并修改一些说法。
首先,我在这里把楼主的“静态成员”和“静态方法”,分别对应下面的“静态数据成员”和“静态成员函数”。并把他们都成为静态成员。(它们实际是同一个概念的不同说法。)
“静态成员是属于类的,由该类的全体对象共享”------就是对是这样的
“无论你建立了多少个该类的对象,静态成员在内存上只有一个”------我要说的是,无论你建多少个该类的对象,所有成员函数在内存上也只有一个
为什么说静态成员是属于类的呢??
因为,
我们假设 class A };并定义对象 A abc;
一般的引用类的成员的方法是通过对象去引用:abc.i; abc.display;。
但可以通过类 A::i来引用i , 通过A::display()来引用display(). 《这里是要特别要注意的!!!》
而普通成员就不行,
虽然不管是静态成员还是普通成员,在内存里只有一个副本。但从这个角度去看,静态成员是属于类的。
对于静态成员函数,我们也许还分不清楚这个问题,但是,
特别是对于静态数据成员,我们就很容易理解了。
如果不定义为静态数据成员,那么每个对象都分别有一个i的副本(拷贝)。但定义为静态数据成员之后,所有的对象共享有一个i的副本,就是说i在内存里就一个副本。
那么,不同对象引用i,对i的改变的话, 其他对象中i的值也会被改变,而且所有对象的值都是相同的。
在引用静态数据成员时,可以不通过对象而通过类,静态数据成员在内存只有一个,而且可以通过类来引用。这是静态数据成员属于类,很明显的。
这是实现不同对象间数据共享的一种方法。
静态成员函数,与静态数据成员类似。就不说,需要注意的是,它在内存里始终只有一个副本(普通成员函数也一样)。
关于静态成员的生命周期,在此就不多说了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
单选题法兰西第二共和国建立于A.拿破仑帝国垮
菜花黄金诗句,黄金配翡翠是什么意思
移动79融合套餐中移动电视是必须装的么.移动
ViV0X9,手机锁屏密码忘了怎样开机
一个同事跑了,骗了我们钱,我们该怎么要回,
弗洛伊德的诗句,弗洛伊德名言吾已无退路吾当
银行柜员长期坐柜台是否会使人没有上进心拜托
我的手机是LG智能手机可以通话但无法上网。怎
单选题Youaresayingthateveryingshouldbee
国内3D打印服务哪家企业做的比较好?
段落在文中的作用,句子在文中的作用都有哪几
大肠埃希菌和变形杆菌的生化反应
85武神带什么武器最好
求几本穿越小说 女主要强悍 类似于《王妃十三
以我自己做主为题写一篇与品德相关的作文
推荐资讯
ps4 电脑主机 同时用一个显示屏没问题 问题是
GTA4秘籍打秘籍说会影响成就。到底会影响什么
双色球原来中五块现在加倍时快吗
注册造价工程师有多难考?
is it worthwhile for man to explore space
中国美德读本是谁著的
阿拉伯语祝福语,房地产销售,恭喜开单祝福语
下列各句中,加线的成语使用正确的一项是A.
2013款悦动轮毂尺寸大小
脚背被热水烫了怎么办,已经出了泡
近期房价上涨的原因是什么
完整的城市规划实施评价包括哪些
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?