永发信息网

什么叫做静态数据成员

答案:1  悬赏:80  手机版
解决时间 2021-03-20 09:19
  • 提问者网友:捧腹剧
  • 2021-03-20 03:50
什么叫做静态数据成员
最佳答案
  • 五星知识达人网友:污到你湿
  • 2021-03-20 05:22
问题一:c++中什么是静态数据成员 什么是静态成员函数 分别有什么作用? *** 我主要说的关键是“静态成员是属于类的”,而不属于任何对象所有 ***
在此对一些内容作详细的解释,其中小部分与楼上有点相同,但我说的关键处,与它不同,并修改一些说法。
首先,我在这里把楼主的“静态成员”和“静态方法”,分别对应下面的“静态数据成员”和“静态成员函数”。并把他们都成为静态成员。(它们实际是同一个概念的不同说法。)
“静态成员是属于类的,由该类的全体对象共享”------就是对是这样的
“无论你建立了多少个该类的对象,静态成员在内存上只有一个”------我要说的是,无论你建多少个该类的对象,所有成员函数在内存上也只有一个
为什么说静态成员是属于类的呢??
因为,
我们假设 class A };并定义对象 A abc;
一般的引用类的成员的方法是通过对象去引用:abc.i; abc.display;。
但可以通过类 A::i来引用i , 通过A::display()来引用display(). 《这里是要特别要注意的!!!》
而普通成员就不行,
虽然不管是静态成员还是普通成员,在内存里只有一个副本。但从这个角度去看,静态成员是属于类的。
对于静态成员函数,我们也许还分不清楚这个问题,但是,
特别是对于静态数据成员,我们就很容易理解了。
如果不定义为静态数据成员,那么每个对象都分别有一个i的副本(拷贝)。但定义为静态数据成员之后,所有的对象共享有一个i的副本,就是说i在内存里就一个副本。
那么,不同对象引用i,对i的改变的话, 其他对象中i的值也会被改变,而且所有对象的值都是相同的。
在引用静态数据成员时,可以不通过对象而通过类,静态数据成员在内存只有一个,而且可以通过类来引用。这是静态数据成员属于类,很明显的。
这是实现不同对象间数据共享的一种方法。
静态成员函数,与静态数据成员类似。就不说,需要注意的是,它在内存里始终只有一个副本(普通成员函数也一样)。
关于静态成员的生命周期,在此就不多说了。问题二:静态数据成员有哪些特点 C++提供了静态成员,用以解决同一个类的不同对象之间数据成员和函数的共享问题。静态成员的特点是:不管这个类创建多少个对象,其静态成员在内存中只保留一份副本,这个副本为该类的所有对象所共享。面对对象方法中还有类属性的概念,类属性是描述类的所有对象的共同特征的一个数据项,对于任何对象实例,它的属性值是相同的,C++通过静态数据成员来实现类属性。问题三:静态数据成员和静态函数成员是什么?分别干嘛的?有没有动态数据成员和动态函数成员 这个静态对应的不是动态,没有对应的词,普通的就叫“数据成员”和“函数成员”
静态的意思是跟这个类的对象实例没关系,是类范围的,一个类可以生成多个对象,但只有一份静态数据成员。
普通函数成员会隐式传递一个this指针,指向调用这个函数的对象;而静态函数成员不包括这个指针,所以在静态成员函数内不能使用非静态的数据成员和函数。问题四:什么是 静态数据成员 静态函数成员 静态数据成员: 就是说在这个类中是固定的,只有一个。比如说中国人是一个类,那么这个中国人的总人口数就是一个静态数据成员,这个静态数据成员不会跟随某个具体的人,而是正对于这个类的。
静态成员函数,一般这些函数都是用来对这个类进行操作的。例如,你要修改一个静态成员数据,那么需要静态成员函数。
你可以这么想: 静态时,大体的一个类; 动态时,具体的一个类中的对象问题五:静态成员的基本介绍 在c++类中声明成员时可以加上static关键字,这样声明的成员就叫做静态成员(包括数据成员和成员函数)。例如: class test{public:test(){}~test(){}public://静态成员函数static int getCount(){return m_nCount;}private://静态数据成员static int m_nCount;};int test::m_nCount=0;问题六:一个类的静态数据成员所表示的属性是什么 表示该变量归此类所有对象共享啊。例如
class Student
{
public:
static int num;
}
Student::num=0;
num鸡所有student类共享,不属于某一个特定对象问题七:类中静态数据成员问题 静态成员需要在外部再写一行定义:
int tmpclass::a=0;
不写初始化也可以,会自动初始化为零
int tmpclass::a;问题八:静态数据成员的定义和初始化方法是什么 静态数据成员定义格式:
static 类型标示符(比如 int、double) 静态数据成员名;
比如 static int a;
初始化格式:
类型标示符 类名::静态数据成员名=初始值;
常用的是在类外定义,类内声明。
谢谢采纳...问题九:什么是静态成员?其特点是什么?如何声明和实现 在c#类中声明成员时可以加上static关键字,这样声明的成员就叫做静态成员(包括数据成员和成员函数)。例如:
public class test
{
public:
test(){}
~test(){}
public:
//静态成员函数
static int getCount(){
return m_nCount;
}
private:
//静态数据成员
static int m_nCount;
};
静态数据成员和普通数据成员区别较大,体现在下面几点:
(1)普通数据成员属于类的一个具体的对象,只有对象被创建了,普通数据成员才会被分配内存。而静态数据成员属于整个类,即使没有任何对象创建,类的静态数据成员变量也存在。
(2)因为类的静态数据成员的存在不依赖与于任何类对象的存在,类的静态数据成员应该在代码中被显示的初始化,一定要在类外进行,例如上例。
(3)外部访问类的静态成员只能通过类名来访问,例如:test::getCount()。
(4)类的静态成员函数无法直接访问普通数据成员(可以通过类的指针等作为参数间接访问),而类的任何成员函数都可以访问类的静态数据成员。
(5)静态成员和类的普通成员一样,也具有public、protected、private3种访问级别,也可以具有返回值、const修饰符等参数。问题十:java中成员变量和静态变量的区别是什么 JAVA成员变量和静态变量的区别:
1,成员变量所属于对象。所以也称为实例变量。
静态变量所属于类。所以也称为类变量。
2,成员变量存在于堆内存中。
静态变量存在于方法区中。
3,成员变量随着对象创建而存在。随着对象被回收而消失。
静态变量随着类的加载而存在。随着类的消失而消失。
4,成员变量只能被对象所调用 。
静态变量可以被对象调用,也可以被类名调用。
所以,成员变量可以称为对象的特有数据,静态变量称为对象的共享数据。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯