c++里面静态变量和动态变量,自动变量这些都有哪些个区别
auto为动态变量 可省略,在c++中通常都不写auto,即未加属性说明的局部变量都为自动变量。当定义时,系统即在动态区为其分配存储单元。函数运行结束后释放它所占的存储单元;如果在定义时,不给自动变量赋初值,那每次调用时,其初值是不确定的;如果定义时赋初值,那每次调用时它都取定义时所指定的值。 static为局部静态变量所占存储单元在静态区,在调用它所在的函数后,在函数体内被修改了的静态变量的值被保留下来作为下次函数调用的初值起到全局变量的作用。 如果使用一个全局变量,又怕受到其它变量的干扰,于是就将其设计为静态变量gitcloud2023-06-08 07:30:212
c++静态指针变量
1.静态数据成员需要在类外单独做初始化,形式如: 变量类型 类名::变量名=初始值;看下面的例子:(调试环境VS2005)class BaiduTest{public: static int *m_instance;//静态指针变量};int _tmain(int argc, _TCHAR* argv[]){ int a = 10; BaiduTest::m_instance = &a;//静态指针变量初始化 return 0; }肖振2023-06-08 07:30:212
C++ 公有的 静态变量可以用类名::访问, 那么非静态变量是不是 就不能用类名::访问?
楼上两位正解Ntou1232023-06-08 07:30:203
c++中怎样定义两个类去改变同一个静态变量
在其中一个类a中定义一个另一个类b的对象的数据成员(b x;),然后就可以用该类的对象访问列入 a c;然后c.x.y;y为b类的静态变量九万里风9 2023-06-08 07:30:201
C++语言静态变量递归,不懂求分析
静态变量只初始化一次,当本次使用结束后,下次使用时,继续保留上次调用结束后的值!CarieVinne 2023-06-08 07:30:202
C++中; 静态变量与动态变量有什么区别啊? 作用是什么?
C++中变量存储方式有三种,自动存储,静态存储,动态存储自动存储简单意义上就是在函数内不用任何关键字直接定义的变量,它在函数被调用时被创建,在函数退出时自动消失,静态存储顾名思义就是在程序的整个运行过程中都存在,在函数体外定义的变量自动为静态存储方式,也可以在函数内使用static关键字定义动态存储是以关键字new和delete构成的,在程序运行过程中需要时通过new现场分配指定大小的空间,不再需要时使用delete来释放余辉2023-06-08 07:30:201
C++中; 静态变量与动态变量有什么区别啊? 作用是什么?
静态变量相当于C中的全局变量,动态变量是局部变量。可桃可挑2023-06-08 07:30:202
C++中静态局部变量的生存期是什么?是贯穿整个程序还是从调用该函数开始到整个程序结束?
在程序结束前,他一直存在!在函数的多次调用中,静态的局部对象会持续存在并保存他的值!例如:int fun(){ static int coutnt = 0; return ++count;}int main(){ fun(); fun(); cout << fun() << endl;结果会输出3}北营2023-06-08 07:30:193
C++静态成员变量的问题,找错误
空间环境和真颛2023-06-08 07:30:193
C++ 静态变量之为什么只初始化一次
首先问题来自这个函数:[cpp]int fun(){static int i=0;i++;return i;}当这个函数被反复调用时,i的值是会一直加的,也就是静态变量只被初始化了一次.我对此产生了疑惑.不知道大家有没有.当改为:[cpp]int fun(){int i=0;i++;return i;}反复调用时都返回的是1; 这个例子很明白,虽然i这个变量时同名的,但是地址是不一样的,这是一个新的变量,因为在作用域后,原变量被销毁了.接着创建一个新的变量.那么这里我们就知道了一件事情:就是静态变量是全局的,和程序的生命周期是一样的.那么原来的staic的i依然存在. 但是它的可访问区域就只能是定义的作用域,而不一定能全局访问,这是全局变量的一个差别.而静态变量的必须初始化,如果没有显示初始化,则初始化为0 ,"0"或者其他.初始化在程序第一次加载中开始.并设置了相应的标志位!所以当变量重复时,编译器忽略了重复初始化的代码,到这里就算是C++只能初始化一次的原因了!另外参考:操作系统在加载程序时会根据程序中的声明部分为程序分配内存空间(这部分数据是由编译器生成的)。程序所支配的内存空间分为两大部分:静态区域和动态区域(至于为什么这样区分涉及到硬件知识,建议LZ不要深究):动态区域用于存储经常会变动的数据(动态区域又分为两大部分:栈和堆,关于这两个部分大家应该都很熟悉了);静态区域(Java里称为永久区域)用于存储不会经常变化的数据,例如程序的指令代码(C/C++里就是各个函数编译后得到的代码)、用户类型(结构体、类)的声明代码、全局变量、静态变量PS:有些例子提到用静态变量来做递归的计数器,那只是为了说明静态变量的特性。实际上不推荐这种用法,因为这样会对程序性能造成轻微的影响。静态区域内的数据会在程序加载时进行初始化,生存期为程序运行的全部时间。另外,纠正LZ的一个误解:任何变量都只进行一次初始化。局部变量在程序块结束时生存期就结束了,下次再调用这个程序块时从原理上说声明的是另一个变量了(分配到的地址也不一定一样)。PS:在不同编译器的不同编译情况时,实际的内存分区可能不同。例如TC的Small模式下堆和栈区是重合的,而Tiny模式下连静态区域和动态区域都是重合的。拌三丝2023-06-08 07:30:182
在线等,c++关于静态变量的问题
因为你的other函数在main中调用了两次,而other函数中的a变量是静态类型的,静态类型的变量保存值有个条件是函数调用的连续性,就是调用过程没有中断,而你的两次调用没有连续性。所以,第一次时a为2,然后程序中加了一个2,再次调用时,a又还原了。小菜G的建站之路2023-06-08 07:30:183
c++构造函数中的静态变量
不明白!墨然殇2023-06-08 07:30:184
c++中静态变量和动态变量有什么区别
补充一点:动态变量如果不赋初值,其初值是不确定的,静态变量如果不赋初值,会被初始化为0无尘剑 2023-06-08 07:30:172
C++中能在结构体中定义静态变量吗?
结构是用struct定义的特殊的类,在class中能够定义静态变量,在结构中也是可以的。Jm-R2023-06-08 07:30:176
C++静态变量作用范围问题
在remote_access()函数中输出的dick是twofile2.cpp中定义的dick=10,而twoflie1.cpp中输出的dick是本文件中定义的dick=30,两者自然不同;同理在remote_access()函数中输出的harry是twofile2.cpp中定义的harry=200,而twoflie1.cpp中输出的harry是本文件中定义的harry=300,两者也不同。tt白2023-06-08 07:30:171
c++静态变量和动态变量(有动态变量吗)最主要的区别是什么?
主要区别在于存储持续性和文件链接两方面,静态变量存在于整个程序过程,动态变量是局部可用。静态变量是外部链接性,其它文件也可以引用,动态变量只是局部可以使用人类地板流精华2023-06-08 07:30:171
C++静态变量如何声明?
变量名字前加上修饰词 static,例如static int a;小白2023-06-08 07:30:173
成员变量 成员方法 局部变量 实例变量 静态变量 这几种的区别是什么啊.....大虾们求解
看书最好,仔细看定义和例子瑞瑞爱吃桃2023-06-08 07:30:167
什么是静态方法和静态变量,他们同普通的成员方法和变量有什么区别?
静态方法和静态变量一运行就给他们分配地址空间了类中静态方法和静态变量只属于类,直接可以调用;而普通的成员方法和变量则要通过类的对象去调用凡尘2023-06-08 07:30:161
静态方法里怎么就不能有静态变量呢?
static是用来修饰成员变量和成员方法,也可以形成静态static代码块。不能在方法里声明一个变量为static的。static修饰的变量,任何一个类的实例对象都可以访问,是共享的。而方法中声明的变量都是局部的,方法执行完后就要销毁,释放缓存空间的。韦斯特兰2023-06-08 07:30:164
Java中局部变量、成员变量和全局变量(静态成员变量)哪个用起来更快
更快是什么意思? (成员变量就是全局变量)北境漫步2023-06-08 07:30:152
静态方法有何特点?静态方法存取成员变量时有何要求?
静态方法的最明显的特点就是 类名直接调用方法和属性 不需要实例化方法的话 对成员变量也要求是静态的Jm-R2023-06-08 07:30:151
c++中可以对类中私有成员中的静态变量初始化吗
可以。类的所有静态变量都必须在类的外部初始化,格式是:类型名 类名::变量名=初始值;而不管它是私有的还是公有的。如:class c{public:static int d;protected:static int e;private:static int f;};int c::d=1;int c::e=2;int c::f=3;大鱼炖火锅2023-06-08 07:30:151
c++:如何才能在静态函数中使用类的成员变量,//或者有没有办法在启动线程的时候使用类的成员函数?
//如何才能在类中的静态函数中使用类的成员变量 可以通过给静态函数加参数来实现,比如static void loop(test * argslist );{ argslist->a=10; argslist->a=b;}在类外可这样实现test a;test::loop(&test);//或者有没有办法在启动线程的时候使用类的成员函数? 将类的成员函数声明成tatic DWORD WINAPI StartThread()就可以调用了,注意beginthread这个函数中的一个参数,通过它可以将你类中的一些信息传到线程中.大鱼炖火锅2023-06-08 07:30:152
java中什么方法可以定义静态变量
static陶小凡2023-06-08 07:30:153
c++中可以对类中私有成员中的静态变量初始化吗?
首先要明白的一点是:静态成员的值对所有的对象是一样的。静态成员可以被初始化,但只能在类体外进行初始化。一般形式:数据类型 类名::静态数据成员名=初值注意:不能用参数初始化表对静态成员初始化。一般系统缺省初始为0.下面是一个自己写的参考例子:#include "iostream.h"class Test{ static int temp;public: static int getData() { return temp; }};int Test::temp=3;int main(){ cout <<Test::getData()<<endl; return 0;}拌三丝2023-06-08 07:30:144
一个类的静态函数怎么调用这个类的成员变量,有方法吗
原因如下; 和静态数据成员一样,静态成员函数是类的一部分,而不是对象的一部分。如果要在类外调用公用的静态成员函数,要用类名和域运算符“∷”。 如 Box∷volume( ); 实际上也允许通过对象名调用静态成员函数,如 a.volume( ); 但这并不意味着此函数是属于对象a的,而只是用a的类型而已。 静态成员函数的作用是为了能处理静态数据成员。 可以说,静态成员函数与非静态成员函数的根本区别是:非静态成员函数有this指针,静态成员函数并不属于某一对象,它与任何对象都无关,静态成员函数没有this指针。 由此决定了静态成员函数不能访问本类中的非静态成员。 在C++程序中,静态成员函数主要用来访问静态数据成员,而不访问非静态成员。假如在一个静态成员函数中有以下语句: cout<<height<<endl; //若height已声明为static,则引用本类中的静态成员,合法 cout<<width<<endl; //若width是非静态数据成员,不合法。但是,并不是绝对不能引用本类中的非静态成员,只是不能进行默认访问,因为无法知道应该去找哪个对象。如果一定要引用本类的非静态成员,应该加对象名和成员运算符“.”。如 cout<<a.width<<endl; //引用本类对象a中的非静态成员Ntou1232023-06-08 07:30:141
c++中可以对类中私有成员中的静态变量初始化吗
可以。类的所有静态变量都必须在类的外部初始化,格式是:类型名类名::变量名=初始值;而不管它是私有的还是公有的。如:classc{public:staticintd;protected:staticinte;private:staticintf;};intc::d=1;intc::e=2;intc::f=3;拌三丝2023-06-08 07:30:132
java 中静态成员变量有没默认的初始值
在方法里的变量属于局部变量,局部变量必须附初值!苏萦2023-06-08 07:30:134
c++类外定义静态变量有什么作用
static用法有很多。1.如果修饰全局变量,那么该全局静态变量仅能在本文件内进行访问。属于限定作用域的用途。2.如果修饰类的成员变量,那么该静态成员变量就会放到静态区进行存储,可以通过类名::的方式进行访问。3.如果修饰类的成员函数,那么该静态成员函数可以通过类型::的方式进行访问。4.如果修饰函数内的局部变量,那么该静态局部变量在类执行完毕后能够继续保存。下次执行该函数时,可以利用上次的结果。瑞瑞爱吃桃2023-06-08 07:30:131
java中静态常量和静态变量的区别
java中静态常量和静态变量的区别所属不同:静态变量属于类,所以也称为为类变量;成员变量属于对象,所以也称为实例变量(对象变量)在内存中位置不同:静态变量存储于方法区里的静态区;成员变量存储于堆内存区在内存中出现的时间不同:静态变量随着类的加载而加载、随着类的消失而消失;成员变量随着对象(也叫实例)的创建而存在,随着对象的消失而消失。调用方式不同:静态变量可以通过类名调用,也可以通过对象调用; 成员变量只能通过对象名调用。在静态方法中是没有this关键字的,如何理解呢?静态变量是随着类的加载而加载,this是随着对象的创建而存在。静态先于对象存在。静态方法只能访问静态的成员变量和静态的成员方法。非静态方法,既可以调用静态的成员变量也可以调用非静态的成员变量;非静态方法既可以调用静态的成员方法,也可以调用非静态的成员方法。西柚不是西游2023-06-08 07:30:131
静态方法里面的变量是静态的吗
是的CarieVinne 2023-06-08 07:30:132
java 中类的静态方法怎么调用成员变量
不行,因为java中静态的东西是类级别的,也就是说用类名就可访问,也可以用任何对象名访问,无论以哪种形式访问的都是同一个东西。而一般我们所说的成员变量,是指对象级别的,也就是说每一个对象所拥有的成员变量都是独立的不同的变量,是属于对象自己拥有的。相对于来说访问范围,无疑是静态的更大,静态的可以被任何对象所访问且是同一个,而成员变量是每个对象各自拥有的。那么,为什么“静态方法不能调用类成员变量”,因为要想访问成员变量你必须有个“已经实例化好的对象”,除非你在静态方法里创建一个当前类的实例对象,否则你是无法直接调用成员变量的,因为它不知道这个成员变量属于哪个实例对象的。而在成员方法里,所有属于成员的变量、方法已经可以确定是同一个对象的,并且可以用this表示当前对象。北营2023-06-08 07:30:121
PHP类的静态(static)方法和静态(static)变量使用介绍
在php中,访问类的方法/变量有两种方法:1.创建对象$object=newClass(),然后使用”->”调用:$object->attribute/function,前提是该变量/方法可访问。2.直接调用类方法/变量:class::attribute/function,无论是静态/非静态都可以。但是有前提条件:A.如果是变量,需要该变量可访问。B.如果是方法,除了该方法可访问外,还需要满足:b1)如果是静态方法,没有特殊条件;b2)如果是非静态方法,需要改方法中没有使用$this,即没有调用非静态的变量/方法,当然,调用静态的变量/方法没有问题。然后我们再看一下使用$object->…和使用class::…都有什么区别:1.使用$object->…,需要执行构造函数创建对象;2.使用class::…调用静态方法/变量,不需要执行构造函数创建对象;3.使用class::…调用非静态方法/变量,也不需要执行构造函数创建对象。然后奇怪的地方就出来了,既然2和3都一样,那静态方法/变量存在还有什么意义呢?差异还是显然存在的,如下:1.静态变量静态成员只保留一个变量值,而这个变量值对所有的实例都是有效,也就是说,所有的实例共享这个成员。2.静态方法静态方法可以直接使用class::…来调用,而非静态方法需要满足一定限制条件才能使用class::..的方法调用,如之前所述Jm-R2023-06-08 07:30:121
关于 C++类 static成员变量赋值
mark先坐下,等大神,因为我也想知道~CarieVinne 2023-06-08 07:30:115
类的静态私有变量怎么使用
私有变量用private修饰 静态成员变量用static修饰 私有变量只能被该类调用,不能被其他类(包括子类)调用。 静态成员变量也可以分私有或公有的,调用静态成员变量只需用类名加“.”。 其实private是修饰的共享范围,static是修饰的变量类型。人类地板流精华2023-06-08 07:30:111
C++静态成员函数,怎么就访问私有变量了...
在头函数中重新定义善士六合2023-06-08 07:30:116
C#里面静态方法和静态变量的一点问题?
参考以下:实例方法的话,需要对类进行实例化以后才可以使用静态方法,可以直接通过类名.方法名进行访问。对于静态成员也是如此在哪里调用的话,区别不大水元素sl2023-06-08 07:30:102
c++中静态变量动态生成
最好能给出例子,谢谢,则忽略。MID函数函数名称:MID主苏州马小云2023-06-08 07:30:103
在Java中同类中的静态方法能否调用类成员变量呢?为什么?
同类中的静态方法只能调用同类中的 静态变量人类地板流精华2023-06-08 07:30:108
java类中的静态变量是什么时候初始化的
静态方法是你手动调用的时候执行。静态变量与类一起加载,最优先的。然后是,静态初始化器(只初始化静态成员变量)。然后是,属性初始化(只初始化非静态成员变量)。最后是,构造函数(常用的,你懂的)...记住:先是静态,然后是非静态。可桃可挑2023-06-08 07:30:091
c++类里面添加类的静态成员指针变量如何初始化
在cpp文件里写一行: int *xxx::mmm=NULL;其中xxx是类名,mmm是静态成员指针变量瑞瑞爱吃桃2023-06-08 07:30:081
JAVA中,非静态方法可以调用静态成员变量吗?
实例方法既可以操作实例变量,又可以操作类变量.北境漫步2023-06-08 07:30:084
C++的类中怎么用静态变量?
缺少初始化。静态变量必须初始化才能使用!#includeusingnamespacestd;classa{public:staticinta;};inta::a=0;voidmain(){a::a=10;cout<评论00加载更多九万里风9 2023-06-08 07:30:073
静态变量可以再结构体中声明吗
可以,这样就是静态成员变量,公用的。九万里风9 2023-06-08 07:30:072
c++ 静态成员函数全局变量
静态成员函数不能访问非静态成员变量,这是规定。 但是你可以换下解决问题的思路。线程的入口函数除了可以锁静态成员函数,也可是全局函数。 在全局函数里获取主窗口的句柄之后,接下来可以访问各种成员变量。ardim2023-06-08 07:30:071
java中一个类中的静态变量有什么用
静态变量有什么用,那就把和成员变量的区别告诉你。静态变量用static修饰:附属于类而成员变量是附属于对象的。具体反应在 每个对象有各自的成员变量,但是他们共享静态变量。所以静态变量相当于是大家的共有资源。再调用方法上。静态变量可以通过类名或者对象名访问,而成员变量只能通过对象名。因为静态变量是类编译完成后就分配了内存空间,所以不用创建对象也可以访问。而成员变量必须在构造对象以后才会分配内存空间,只能通过对象名访问。拌三丝2023-06-08 07:30:071
java 中是不是 只有静态方法 才能调用静态的成员变量
是!CarieVinne 2023-06-08 07:30:066
c++类中静态成员函数怎么访问类私有变量
可以……类的所有成员函数都可以访问本类的私有成员,但是静态成员函数没有this指针,因此只能访问显式参数的私有成员……LuckySXyd2023-06-08 07:30:062
java 为什么静态方法不能访问成员变量
生命周期不同,被static修饰的属性跟方法会随着的类的加载而存在.而非静态成员变量则是在该类被创建对象是才会初始化,如果类只是被加载而没有创建实例对象,则无法访问非静态成员.瑞瑞爱吃桃2023-06-08 07:30:062
什么时候使用静态变量和方法
静态方法和静态变量在调用时非常方便,使用类名.的方式就可以调用。那什么时候该使用静态变量和静态方法呢? 静态变量在程序运行前就已经分配了空间。静态变量属于类,如果一个类中有静态成员变量,那么这个类的所有new出来的实例对象都共享这个变量。所谓共享就是每一个实例对象都可以访问此静态变量,且对此静态变量的修改对每一个实例可见。 示例1 运行结果: 由示例1运行结果可以看出,每个Person实例对象对staticCount的更改均会被共享。而对于count变量来说,小王的修改对小钱不可见(小钱不能拿到count =1 这个值),小钱的修改对小王也不可见。因此共享变量可被使用在需要共享的变量中,如计数器。 静态的变量和方法是属于类的,是共享的,因此不能体现出多态来。从另一个角度考虑,如果一个方法和他所在类的实例对象无关,那么它就应该是静态的,否则就应该是非静态。因此像工具类,一般都是静态的。ardim2023-06-08 07:30:061
C++类的静态成员变量为什么一定要初始化
类内只是声明。类外才是定义。所以不是一定要初始化,而是一定要在类外定义。不然系统认为这个是未定义的。此后故乡只2023-06-08 07:30:061
VC++中自定义类型 能否作为静态类成员变量?
static MVEC m_vec;只是在类中进行了声明,而规则是需要在类外定义class b{public: static MVEC m_vec;};MVEC b::m_vec;...ardim2023-06-08 07:30:061
C++静态变量本身可否是一个实例对象
对象都是类的实例,我没有听过实例对象的说法。静态变量当然可以是一个对象。比如class A{public: A(int x) {...}... static A static_value;};static A value(3);static A A::static_value(3);这里value是普通的静态变量,A::static_value是A的类静态成员变量,他们都是A的实例。NerveM 2023-06-08 07:30:061
java中,静态成员函数和静态成员变量可以被继承么?
楼上正解 遇到问题 要多想 然后测试一下自己的想法 才能提高自己 共勉拌三丝2023-06-08 07:30:055
访问类的静态成员变量的时候出现undefined reference to
static CSingleton* m_pInstance;改为static CSingleton* m_pInstance = NULL;声明时候顺便初始化为NULL即可。你这里只声明未定义啊。kikcik2023-06-08 07:30:051
java中静态的成员方法里一定都是静态的成员变量吗
是的,静态方法中的成员变量也必须都是静态的,不然编译就会报错。原因也正如你说的,静态方法不依赖与对象的存在,所以如果有非静态的成员变量就会引发歧义苏州马小云2023-06-08 07:30:041
java中使用static声明的变量是否必须赋初值
发达黑桃花2023-06-08 07:30:048
JAVA中静态变量成员有什么特点?简单点说 初学者
A类实例化的两个对象hi投2023-06-08 07:30:043
在C++中类的静态成员变量必须在类外再声明一次吗?
必须在类外初始化tt白2023-06-08 07:30:042
c++静态变量
静态变量关键字static。你的问题描述不是很清楚,是想问用法?墨然殇2023-06-08 07:30:033
C++的类中怎么用静态变量?
例如:在类内定义:static int a;在类外面(不在其他函数中)初始化:int 类名::a=0;(0为赋给a的初始数值);静态变量属于类,可以用类名调用,而且静态变量是每个同类对象共用的变量,就好比共享文件一样,谁都可以共享使用。 其实和非静态变量的使用是一样的,两者没有任何区别,任何属于类的函数都可以直接调用它。另外就是静态函数,同样静态函数和原来的成员函数没有任何区别,它的使用和静态变量的使用一样。可能你想知道的是,另外一个常量修饰符const,常数据成员只能用形参列表赋初值,而且不能改变,常数据成员的使用和普通数据成员除了不能修改它的值外,没有任何区别!而常成员函数的使用仅限于常对象,其他的和普通成员函数没有任何区别。gitcloud2023-06-08 07:30:034
静态变量,怎么在其他函数使用
C++类支持静态成员变量,在使用的时候,遵循类内声明,类外定义的原则。即在类内部进行声明该变量的类型以及静态属性,但不可以赋初始值,而是要在类外定义,同时赋初始值。如<pre t="code" l="cpp">class class_type{static var_type var; };var_type class_type::var = init_value;初始值部分,=init_value可以省略,省略时默认赋值为0。在使用上:1 成员函数均可使用静态变量;2 如果静态变量属性为public,那么任意一个对象a均可使用静态变量var,使用形式为 a.var;3 如果静态变量属性为public,那么可以用如下形式,在类class_type有效的范围内,使用静态变量var:class_type::var人类地板流精华2023-06-08 07:30:031
c++静态成员变量为什么要在类外部定义
因为类的静态成语变量对于该类的对象们来说是共享的,而类内的成员变量在创建对象时会被构造函数初始化,假如该静态变量在类内,每创建一个对象该静态变量就被重新初始化,那把它定义为静态的目的何在?Chen2023-06-08 07:30:021
Java中静态内部类的成员可以访问外部类的静态变量吗
可以,静态变量是全局的,这样的问题自己完全可以下一个demo测试下,LuckySXyd2023-06-08 07:30:003
如何初始化一个类中的静态成员变量
在类外初始化。格式: 类型 类::变量名例子:class Ctest{public:static int S_m_a; //声明};int Ctest::S_m_a =100 ; //初始化无尘剑 2023-06-08 07:30:002
java在 动态方法中 用 静态成员变量不行吗
不行的,只能在静态方法里面用静态变量。kikcik2023-06-08 07:30:002
在Java中同类中的静态方法能否调用类成员变量?为什么?
不行,因为java中静态的东西是类级别的,也就是说用类名就可访问,也可以用任何对象名访问,无论以哪种形式访问的都是同一个东西。而一般我们所说的成员变量,是指对象级别的,也就是说每一个对象所拥有的成员变量都是独立的不同的变量,是属于对象自己拥有的。相对于来说访问范围,无疑是静态的更大,静态的可以被任何对象所访问且是同一个,而成员变量是每个对象各自拥有的。那么,为什么“静态方法不能调用类成员变量”,因为要想访问成员变量你必须有个“已经实例化好的对象”,除非你在静态方法里创建一个当前类的实例对象,否则你是无法直接调用成员变量的,因为它不知道这个成员变量属于哪个实例对象的。而在成员方法里,所有属于成员的变量、方法已经可以确定是同一个对象的,并且可以用this表示当前对象。NerveM 2023-06-08 07:29:591
静态成员函数可以访问非静态成员变量吗
静态成员函数不能访问非静态成员变量,这是规定。 但是你可以换下解决问题的思路。线程的入口函数除了可以锁静态成员函数,也可是全局函数。 在全局函数里获取主窗口的句柄之后,接下来可以访问各种成员变量。bikbok2023-06-08 07:29:591
在jsp页面中 怎样定义一个静态成员变量
页面还可以定义静态变量,我咋不知道呢。。。。:( 多次传过来的参数。不懂。。。。。可以用局部刷新啊。墨然殇2023-06-08 07:29:592
C++的类中怎么用静态变量?
C++类支持静态成员变量,在使用的时候,遵循类内声明,类外定义的原则。即在类内部进行声明该变量的类型以及静态属性,但不可以赋初始值,而是要在类外定义,同时赋初始值。初始值部分,=init_value可以省略,省略时默认赋值为0。在使用上:1 成员函数均可使用静态变量;2 如果静态变量属性为public,那么任意一个对象a均可使用静态变量var,使用形式为 a.var;3 如果静态变量属性为public,那么可以用如下形式,在类class_type有效的范围内,使用静态变量var:;NerveM 2023-06-08 07:29:581
C++中类里面定义 静态成员变量的问题
类中的静态成员变量的初始化必须在类外实现!!并且静态变量定义的关键是:static const int aaa; 再类外初始化的格式是:const 数据类型 【类名】::变量名=数字 例如该程序中:const int a::aaa=10;北有云溪2023-06-08 07:29:582
java 中类的静态方法怎么调用成员变量
static是类级别方法也就是可以类名.方法调用不加static是实例级别的也就是必须先有实例(对象)才能调用其方法如newA().test()除了把成员加static修饰还有别的办法吗 可以new个对象再调用ardim2023-06-08 07:29:582
书上说Java里面静态变量只会有一份,这是什么意思,为什么我可以定义多个静态的成员变量
因为静态变量只在类的空间中保存了一份,它是属于类的,当你第一次加载类的时候,静态变量就会随着一起加载,再往后即便你创建对象了,由于创建时根本就没把静态变量拷贝给对象,当然这个变量也就只初始化一次了。bikbok2023-06-08 07:29:583
JAVA中静态变量成员有什么特点?简单点说 初学者深圳
1.特点一:静态变量的值是共享。比如说A类中有个静态变量V_A,A类创建了两个实例a,b。如果给实例a的变量V_A赋值,如a.V_A=1。那么这时候查看实例b的V_A变量的值也为1,也就是说A对象实例化的两个类共享同一个变量值,而且静态变量 2.特点二:不需要对象实例化就可以使用。比如A类中的静态变量V_A可以用A.V_A的形式使用◤再也不做站长了2023-06-08 07:29:581
static变量有什么作用
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。 被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。 用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类的对象市,不生成static变量的副本,而是类的所有实例共享同一个static变量。 static变量前可以有private修饰,表示这个变量可以在类的静态代码块中,或者类的其他静态成员方法中使用(当然也可以在非静态成员方法中使用--废话),但是不能在其他类中通过类名来直接引用,这一点很重要。实际上你需要搞明白,private是访问权限限定,static表示不要实例化就可以使用,这样就容易理解多了。static前面加上其它访问权限关键字的效果也以此类推。hi投2023-06-08 07:29:572
静态成员变量能作为其他类的成员函数的参数吗
静态成员变量当作参数传给其他函数时仅仅是个值,函数调用不就是传个值么,为什么不能?韦斯特兰2023-06-08 07:29:5711
c++模板类中的静态成员变量什么时候会被初始化,如果想要指定其在某个源文件中初始化,要怎么写?
What?????????????!阿啵呲嘚2023-06-08 07:29:562
java中如何理解多个对象共享同一个静态成员变量?
public class Demo {public static void main(String[] args) {new inner1().setDemo("456");String demo1 = new inner1().getDemo();String demo2 = new inner2().getDemo();System.out.println(demo1);System.out.println(demo2);}}class inner1{private static String demo = "123";public static String getDemo() {return demo;}public static void setDemo(String demo) {inner1.demo = demo;}}class inner2{private static String demo;public static String getDemo() {return demo;}public static void setDemo(String demo) {inner2.demo = demo;}}结果是:456 null苏州马小云2023-06-08 07:29:563
java中静态的成员方法里一定都是静态的成员变量吗
是的,静态方法中的成员变量也必须都是静态的,不然编译就会报错。原因也正如你说的,静态方法不依赖与对象的存在,所以如果有非静态的成员变量就会引发歧义NerveM 2023-06-08 07:29:561