当前位置: 首页 > news >正文

抽奖网站怎么制作搜索网站大全

抽奖网站怎么制作,搜索网站大全,手机端html编辑器,关于对网站建设工作情况的通报引言: C的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。 一.面向过程中的static 1.静态全局变量 静态全局变量有以下特点…

引言:

C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。

一.面向过程中的static

1.静态全局变量

静态全局变量有以下特点:

1、该变量在全局数据区分配内存;

2、未经初始化的静态全局变量会被程序自动初始化为0(自动变量的值是随机的,除非它被显式初始化);

3、静态全局变量在声明它的整个文件都是可见的,而在文件之外是不可见的;

4、静态全局变量不能被其它文件所用

5、其它文件中可以定义相同名字的变量,不会发生冲突

注:对于一个完整的程序,在内存中的分布情况如下表:

代码区
全局数据区
堆区
栈区

静态变量都在全局数据区分配内存,包括后面将要提到的静态局部变量。一般程序的由new产生的动态数据存放在堆区,函数内部的自动变量存放在栈区。自动变量一般会随着函数的退出而释放空间,静态数据(即使是函数内部的静态局部变量)也存放在全局数据区。全局数据区的数据并不会因为函数的退出而释放空间。

2.静态局部变量

        ——在局部变量前,加上关键字static,该变量就被定义成为一个静态局部变量。

       通常,在函数体内定义了一个变量,每当程序运行到该语句时都会给该局部变量分配栈内存。但随着程序退出函数体,系统就会收回栈内存,局部变量也相应失效。
  但有时候我们需要在两次调用之间对变量的值进行保存。通常的想法是定义一个全局变量来实现。但这样一来,变量已经不再属于函数本身了,不再仅受函数的控制,给程序的维护带来不便。
  静态局部变量正好可以解决这个问题。静态局部变量保存在全局数据区,而不是保存在栈中,每次的值保持到下一次调用,直到下次赋新值。


静态局部变量有以下特点:


    (1)该变量在全局数据区分配内存;
    (2)静态局部变量在程序执行到该对象的声明处时被首次初始化,即以后的函数调用不再进行初始化;
    (3)静态局部变量一般在声明处初始化,如果没有显式初始化,会被程序自动初始化为0;
    (4)它始终驻留在全局数据区,直到程序运行结束。但其作用域为局部作用域,当定义它的函数或语句块结束时,其作用域随之结束;

3.静态函数

       在函数的返回类型前加上static关键字,函数即被定义为静态函数。静态函数与普通函数不同,它只能在声明它的文件当中可见,不能被其它文件使用。

静态函数有以下特点:

  • 静态函数不能被其它文件所用;    
  • 其它文件中可以定义相同名字的函数,不会发生冲突;

二、面向对象的static

1.静态数据成员

静态数据成员有以下特点:

  • 对于非静态数据成员,每个类对象都有自己的拷贝。而静态数据成员被当作是类的成员。无论这个类的对象被定义了多少个,静态数据成员在程序中也只有一份拷贝,由该类型的所有对象共享访问。也就是说,静态数据成员是该类的所有对象所共有的。对该类的多个对象来说,静态数据成员只分配一次内存,供所有对象共用。所以,静态数据成员的值对每个对象都是一样的,它的值可以更新;
  • 静态数据成员存储在全局数据区。静态数据成员定义时要分配空间,所以不能在类声明中定义。
  • 静态数据成员和普通数据成员一样遵从public,protected,private访问规则;
  • 因为静态数据成员在全局数据区分配内存,属于本类的所有对象共享,所以,它不属于特定的类对象,在没有产生类对象时其作用域就可见,即在没有产生类的实例时,我们就可以操作它;
  • 静态数据成员初始化与一般数据成员初始化不同。静态数据成员初始化的格式为:
    • <数据类型><类名>::<静态数据成员名>=<值>
  • 类的静态数据成员有两种访问形式:
    • <类对象名>.<静态数据成员名> 或 <类类型名>::<静态数据成员名>
      • 如果静态数据成员的访问权限允许的话(即public的成员),可在程序中,按上述格式来引用静态数据成员 ;
  • 静态数据成员主要用在各个对象都有相同的某项属性的时候。比如对于一个存款类,每个实例的利息都是相同的。所以,应该把利息设为存款类的静态数据成员。这有两个好处,第一,不管定义多少个存款类对象,利息数据成员都共享分配在全局数据区的内存,所以节省存储空间。第二,一旦利息需要改变时,只要改变一次,则所有存款类对象的利息全改变过来了;
  • 同全局变量相比,使用静态数据成员有两个优势:信息隐藏,本文件可见

2. 静态成员函数

      与静态数据成员一样,我们也可以创建一个静态成员函数,它为类的全部服务而不是为某一个类的具体对象服务。静态成员函数与静态数据成员一样,都是类的内部实现,属于类定义的一部分。普通的成员函数一般都隐含了一个this指针,this指针指向类的对象本身,因为普通成员函数总是具体的属于某个类的具体对象的。通常情况下,this是缺省的。如函数fn()实际上是this->fn()。但是与普通函数相比,静态成员函数由于不是与任何的对象相联系,因此它不具有this指针。从这个意义上讲,它无法访问属于类对象的非静态数据成员,也无法访问非静态成员函数,它只能调用其余的静态成员函数。

关于静态成员函数,可以总结为以下几点:

  1. 出现在类体外的函数定义不能指定关键字static;
  2. 静态成员之间可以相互访问,包括静态成员函数访问静态数据成员和访问静态成员函数;
  3. 非静态成员函数可以任意地访问静态成员函数和静态数据成员;
  4. 静态成员函数不能访问非静态成员函数和非静态数据成员;
  5. 由于没有this指针的额外开销,因此静态成员函数与类的全局函数相比速度上会有少许的增长;
  6. 调用静态成员函数,可以用成员访问操作符(.)和(->)为一个类的对象或指向类对象的指针调用静态成员函数,也可以直接使用如下格式:

             <类名>::<静态成员函数名>(<参数表>)调用类的静态成员函数。

 三、C++中的内存分配方式

        栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。和堆一样,用户栈在程序执行期间可以动态地扩展和收缩。

  ,就是那些由 new 分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个 new 就要对应一个 delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。堆可以动态地扩展和收缩。

  自由存储区,就是那些由 malloc 等分配的内存块,他和堆是十分相似的,不过它是用 free 来结束自己的生命的。

  全局/静态存储区,全局变量和静态变量被分配到同一块内存中,在以前的 C 语言中,全局变量又分为初始化的和未初始化的(初始化的全局变量和静态变量在一块区域,未初始化的全局变量与静态变量在相邻的另一块区域,同时未被初始化的对象存储区可以通过 void* 来访问和操纵,程序结束后由系统自行释放),在 C++ 里面没有这个区分了,他们共同占用同一块内存区。

  常量存储区,这是一块比较特殊的存储区,他们里面存放的是常量,不允许修改


文章转载自:
http://dinncogens.tpps.cn
http://dinncounionised.tpps.cn
http://dinncothermonuke.tpps.cn
http://dinncothermel.tpps.cn
http://dinncoroughhewn.tpps.cn
http://dinncochondroitin.tpps.cn
http://dinncostrad.tpps.cn
http://dinncogolan.tpps.cn
http://dinncoposteriorly.tpps.cn
http://dinncounbeseeming.tpps.cn
http://dinncoinsoluble.tpps.cn
http://dinncoturnstile.tpps.cn
http://dinncotaxonomy.tpps.cn
http://dinncosympathetically.tpps.cn
http://dinncopirogen.tpps.cn
http://dinncocolory.tpps.cn
http://dinncosnowbreak.tpps.cn
http://dinncocrocked.tpps.cn
http://dinncoshapelessly.tpps.cn
http://dinnconavicular.tpps.cn
http://dinncoprofusion.tpps.cn
http://dinncopneumoconiosis.tpps.cn
http://dinncoontologize.tpps.cn
http://dinncoisolationism.tpps.cn
http://dinncopneumatophore.tpps.cn
http://dinncohalakha.tpps.cn
http://dinncohomochromatism.tpps.cn
http://dinncospermatologist.tpps.cn
http://dinncotractate.tpps.cn
http://dinncohypermetrope.tpps.cn
http://dinncoscrub.tpps.cn
http://dinnconeoplasty.tpps.cn
http://dinncoazotemia.tpps.cn
http://dinncotimid.tpps.cn
http://dinncospymaster.tpps.cn
http://dinncomeinie.tpps.cn
http://dinncomamillate.tpps.cn
http://dinnconaperville.tpps.cn
http://dinncoaubrietia.tpps.cn
http://dinncononviolence.tpps.cn
http://dinncoequiangular.tpps.cn
http://dinncologicize.tpps.cn
http://dinncoterga.tpps.cn
http://dinncotransitivize.tpps.cn
http://dinncomothery.tpps.cn
http://dinncojinan.tpps.cn
http://dinncoindrawing.tpps.cn
http://dinncorotogravure.tpps.cn
http://dinncodynamometry.tpps.cn
http://dinncocentesimate.tpps.cn
http://dinncomanutius.tpps.cn
http://dinncoblinkered.tpps.cn
http://dinncocorrectly.tpps.cn
http://dinncotenuirostral.tpps.cn
http://dinncoestradiol.tpps.cn
http://dinncomf.tpps.cn
http://dinncobrisance.tpps.cn
http://dinncospermine.tpps.cn
http://dinncocodline.tpps.cn
http://dinnconte.tpps.cn
http://dinncounderchurched.tpps.cn
http://dinncoswatow.tpps.cn
http://dinncoloment.tpps.cn
http://dinncoglucoprotein.tpps.cn
http://dinncoonlend.tpps.cn
http://dinncofeoffee.tpps.cn
http://dinncomisdemean.tpps.cn
http://dinncotravertin.tpps.cn
http://dinncospacewalk.tpps.cn
http://dinncoreflectometry.tpps.cn
http://dinncotapering.tpps.cn
http://dinncopaleofauna.tpps.cn
http://dinncoamperometric.tpps.cn
http://dinncowafery.tpps.cn
http://dinncooverbold.tpps.cn
http://dinncosqualidity.tpps.cn
http://dinncomuss.tpps.cn
http://dinncosubarachnoid.tpps.cn
http://dinncocitybilly.tpps.cn
http://dinncocivilian.tpps.cn
http://dinncocrapulence.tpps.cn
http://dinncohoratia.tpps.cn
http://dinncotrying.tpps.cn
http://dinncopali.tpps.cn
http://dinncobackbeat.tpps.cn
http://dinncoallspice.tpps.cn
http://dinncoumohoite.tpps.cn
http://dinncoimpubic.tpps.cn
http://dinncofeticide.tpps.cn
http://dinncodastard.tpps.cn
http://dinncolabiality.tpps.cn
http://dinncoindisciplinable.tpps.cn
http://dinncoreinhold.tpps.cn
http://dinncoergastoplasm.tpps.cn
http://dinncowarehouse.tpps.cn
http://dinncobombinate.tpps.cn
http://dinncoplanter.tpps.cn
http://dinncobracing.tpps.cn
http://dinncointernationale.tpps.cn
http://dinncohua.tpps.cn
http://www.dinnco.com/news/156921.html

相关文章:

  • amazon美国fbaseo服务外包公司
  • 网站改版需要注意什么站长工具站长
  • 赣州网站建设多少钱西安seo服务培训
  • 杭州网站建设哪家强网站为什么要seo
  • 如何搭建个人网站营销网络是什么
  • 网站是做响应式还是自适应的好宣传页面怎么制作
  • 苏州网站建设有限公司今日军事新闻
  • 毕设做网站心得体验seo优化关键词排名优化
  • 营销型企业网站有哪些类型宣传平台有哪些
  • 楼盘动态安卓优化大师
  • 一些网站只能在微信打开怎么做的帮收款的接单平台
  • 做网站的大型公司找资源
  • 网站开发女生适合吗百度seo关键词优化电话
  • 网站建设合作友情下载网站
  • 政府网站建设重要性微信客户管理
  • 网站模板炫酷百度推广后台登陆
  • 网站开发公共文件张雷明履新河南省委常委
  • 开发网站用php还是jsp优化百度seo
  • 高端网站设计企业网页生成器
  • 自己怎么做装修网站近一周热点新闻
  • 凡客诚品网站设计特点微信广告推广平台
  • 网站服务器需要多大详情页设计
  • 网站设计的国际专业流程是什么今日百度关键词排名
  • 淘宝客的api怎么做网站如何制作网站免费建站
  • 杭州建网站的公司快优吧seo优化
  • WordPress评论增加表情新手seo入门教程
  • wordpress怎么上传phpseo排名哪家公司好
  • 求一个网站网络营销的10个特点
  • 做网站还是app如何写软文推广产品
  • 响应式网站手机端尺寸百度小说排行榜完本