国产丰满大乳无码免费播放_久草一级毛片_国产av黄色一区二区_亚洲一级 片内射欧美乱强上司_制服丝袜亚洲日韩中文字幕欧美_亚洲av中文小島_国产精品无码久久av嫩草下载_91视频黄片软件APP大全

XML|HTML|TXT
您當(dāng)前位置: 軟件開(kāi)發(fā)>> 新利在線娛樂(lè)>> 軟件開(kāi)發(fā)行業(yè)資訊>> 瀏覽文章

C\C++與Java中的static關(guān)鍵字

  C\C++里面的static:

  面向過(guò)程的static:

  在c和c++面向過(guò)程的設(shè)計(jì)里,在全局變量前加上static關(guān)鍵字則可將該變量定義為一個(gè)靜態(tài)全局變量,比如:

  static int a;

  那么c和c++中的靜態(tài)全局變量有什么特點(diǎn)呢:

  1、變量在全局?jǐn)?shù)據(jù)區(qū)分配內(nèi)存(局部變量在棧內(nèi),通過(guò)new和malloc動(dòng)態(tài)分配的變量在堆里);

  2、未經(jīng)初始化的全局變量會(huì)被程序自動(dòng)初始化為0;

  3、靜態(tài)全局變量或函數(shù)在聲明它的文件內(nèi)是可見(jiàn)的,在文件外是不可見(jiàn)的;(可以起到保護(hù)作用)

  講講第三點(diǎn),如果我們只是在某個(gè)頭文件中聲明了一個(gè)普通的全局變量a,那么在引用這個(gè)頭文件的時(shí)候,我們也可以通過(guò)extern關(guān)鍵字將這個(gè)變量引用到當(dāng)前文件中;但是如果你在聲明那個(gè)變量的時(shí)候就加了static關(guān)鍵字,那么全局變量a對(duì)于其他任何文件都是不可見(jiàn)的。

  同樣的,如果以static方式定義了一個(gè)函數(shù),那么這個(gè)函數(shù)只在定義它的文件內(nèi)可見(jiàn)。

  面向?qū)ο蟮膕tatic:

  在面向?qū)ο笤O(shè)計(jì)里面,使用static有幾點(diǎn)要注意:

  1、靜態(tài)成員函數(shù)的聲明在類內(nèi)要加上static關(guān)鍵字,但是在類外實(shí)現(xiàn)的時(shí)候不需要;

  2、靜態(tài)成員函數(shù)沒(méi)有this指針,所以不要嘗試顯示或隱式地在靜態(tài)成員函數(shù)內(nèi)引用這個(gè)指針,這種做法會(huì)導(dǎo)致編譯期間報(bào)錯(cuò)。因此也就不要嘗試些什么在構(gòu)造函數(shù)中給靜態(tài)成員變量初始化的動(dòng)作了。

  下面寫個(gè)小例子感受一下面向?qū)ο蟮膕tatic:

  首先定義一個(gè)頭文件account.h,在頭文件中定義一個(gè)類:

  #pragma once

  class Account

  {

  public:

  static void reiseInterest(double var );

  static double interest(){return dInterest; } //類內(nèi)給出實(shí)現(xiàn),語(yǔ)句簡(jiǎn)單,無(wú)遞歸,與類外實(shí)現(xiàn)并聲明為inline函數(shù)都是相同的,均為內(nèi)聯(lián)函數(shù)

  private:

  static double dInterest ;

  };

  double Account::dInterest = 5; //靜態(tài)數(shù)據(jù)成員初始化

  inline void Account::reiseInterest(double var)

  {

  dInterest += var;

  }

  接著在源文件中進(jìn)行測(cè)試:

  #include

  #include "account.h"

  using namespace std;

  int main()

  {

  //double Account::dInterest = 5; //錯(cuò)誤?。tatic關(guān)鍵字限制了可視域??!

  cout<<"The initial interest is "<

  Account ac1;

  Account ac2;

  ac1.reiseInterest(18);

  ac2.reiseInterest(17);

  cout<<"The current interest is "<

  return 0;

  }

  運(yùn)行結(jié)果如下:

C\C++與Java中的static關(guān)鍵字

手機(jī):18678812288 E-Mail:1069706080@qq.com
地址:山東省濟(jì)南市舜耕路泉城公園東門園內(nèi)向北50米 魯ICP備07011972號(hào) 版權(quán)所有2008-2013 新利體育18
Baidu