最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++類的靜態(tài)成員初始化詳細(xì)講解

 更新時(shí)間:2013年09月29日 09:07:17   作者:  
通常靜態(tài)數(shù)據(jù)成員在類聲明中聲明,在包含類方法的文件中初始化.初始化時(shí)使用作用域操作符來指出靜態(tài)成員所屬的類.但如果靜態(tài)成員是整型或是枚舉型const,則可以在類聲明中初始化

記?。?/FONT>通常靜態(tài)數(shù)據(jù)成員在類聲明中聲明,在包含類方法的文件中初始化.初始化時(shí)使用作用域操作符來指出靜態(tài)成員所屬的類.但如果靜態(tài)成員是整型或是枚舉型const,則可以在類聲明中初始化!!!

復(fù)制代碼 代碼如下:

#include <iostream>
using namespace std;
class test
{
public:
static int num;
};
int test::num = 0;
void main()
{
cout<<test::num <<endl;
test::num = 20;
cout<<test::num <<endl;
}

一般地靜態(tài)數(shù)據(jù)成員在該類定義之外被初始化如同一個(gè)成員函數(shù)被定義在類定義之外一樣,在這種定義中的靜態(tài)成員的名字必須被其類名限定修飾,如上例中的
int test::num = 0;
與全局對(duì)象一樣對(duì)于靜態(tài)數(shù)據(jù)成員在程序中也只能提供一個(gè)定義,這意味著靜態(tài)數(shù)據(jù)成員的初始化不應(yīng)該被放在頭文件中而應(yīng)該放在含有類的非inline函數(shù)定義的文件中, 靜態(tài)數(shù)據(jù)成員可以被聲明為任意類型它們可以是const 對(duì)象數(shù)組或類對(duì)象等等
復(fù)制代碼 代碼如下:

#include <string>
class Account {
// ...

private:
static const string name;
};
const string Account::name("Savings Account");


作為特例有序型的const 靜態(tài)數(shù)據(jù)成員可以在類體中用一常量值初始化, 例如如果決定用一個(gè)字符數(shù)組而不是string 來存儲(chǔ)賬戶的姓名那么我們可以用int型的const數(shù)據(jù)成員指定該數(shù)組的長度例如:
復(fù)制代碼 代碼如下:

// 頭文件
class Account {
// ...
private:
static const int nameSize = 16;//好像vc下不支持這樣
static const char name[nameSize];
};
// 文本文件
cons tint Account::nameSize;// 必需的成員定義

const char Account::name[nameSize]="Savings Account";


于這個(gè)特例有一些有趣的事情值得注意, 用常量值作初始化的有序類型的const 靜態(tài)數(shù)據(jù)成員是一個(gè)常量表達(dá)式constant expression ,如果需要在類體中使用這個(gè)被命名的值那么類設(shè)計(jì)者可聲明這樣的靜態(tài)數(shù)據(jù)成員, 例如因?yàn)閏onst 靜態(tài)數(shù)據(jù)成員nameSize是一個(gè)常量表達(dá)式所以類的設(shè)計(jì)者可以用它來指定數(shù)組數(shù)據(jù)成員name 的長度, 在類體內(nèi)初始化一個(gè)const 靜態(tài)數(shù)據(jù)成員時(shí)該成員必須仍然要被定義在類定義之外
但是因?yàn)檫@個(gè)靜態(tài)數(shù)據(jù)成員的初始值是在類體中指定的, 所以在類定義之外的定義不能指定初始值, 因?yàn)閚ame 是一個(gè)數(shù)組不是有序類型所以它不能在類體內(nèi)被初始化, 任何試圖這么做的行為都會(huì)導(dǎo)致編譯時(shí)刻錯(cuò)誤例如:
復(fù)制代碼 代碼如下:

class Account {
// ...
private:
static const int nameSize = 16;// ok: 有序類型
static const char name[nameSize]= "Savings Account";// 錯(cuò)誤
};

name 必須在類定義之外被初始化, 這個(gè)例子還說明了一點(diǎn), 我們注意到成員nameSize指定了數(shù)組name 的長度, 而數(shù)組name的定義出現(xiàn)在類定義之外,
const char Account::name[nameSize] = "Savings Account";

nameSize 沒有被類名Account 限定修飾. 盡管nameSize是私有成員, 但是name的定義仍沒有錯(cuò), 怎么會(huì)這樣? 如同類成員函數(shù)的定義可以引用類的私有成員一樣靜態(tài)數(shù)據(jù)成員的定義也可以引用靜態(tài)數(shù)據(jù)成員, name 的定義是在它的類的域內(nèi)當(dāng)限定修飾名Account::name被看到之后它就可以引用Account 的私有數(shù)據(jù)成員。

相關(guān)文章

  • C++11的右值引用的具體使用

    C++11的右值引用的具體使用

    這篇文章主要介紹了C++11的右值引用的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 標(biāo)準(zhǔn)C++類string的Copy-On-Write技術(shù)

    標(biāo)準(zhǔn)C++類string的Copy-On-Write技術(shù)

    這里,我想從C++類或是設(shè)計(jì)模式的角度為各位揭開Copy-On-Write技術(shù)在string中實(shí)現(xiàn)的面紗,以供各位在用C++進(jìn)行類庫設(shè)計(jì)時(shí)做一點(diǎn)參考
    2013-11-11
  • C語言 用while循環(huán)求和的平均值操作

    C語言 用while循環(huán)求和的平均值操作

    這篇文章主要介紹了C語言 用while循環(huán)求和的平均值操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • C/C++中使用列表框組件Qt?ListWidget

    C/C++中使用列表框組件Qt?ListWidget

    本文詳細(xì)講解了C/C++中使用列表框組件Qt?ListWidget的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-11-11
  • QT編寫地圖實(shí)現(xiàn)獲取區(qū)域邊界

    QT編寫地圖實(shí)現(xiàn)獲取區(qū)域邊界

    區(qū)域邊界是一些坐標(biāo)點(diǎn)集合,而且不同的行政區(qū)劃得到的區(qū)域邊界點(diǎn)數(shù)組集合個(gè)數(shù)不同。本文將具體介紹QT在編寫地圖時(shí)如何實(shí)現(xiàn)獲取區(qū)域邊界,需要的可以參考一下
    2022-01-01
  • C++指針和數(shù)組:字符和字符串、字符數(shù)組的關(guān)聯(lián)和區(qū)別

    C++指針和數(shù)組:字符和字符串、字符數(shù)組的關(guān)聯(lián)和區(qū)別

    字符串是一種重要的數(shù)據(jù)類型,但是c語言并沒有顯示的字符串?dāng)?shù)據(jù)類型,因?yàn)樽址宰址A康男问匠霈F(xiàn)或者存儲(chǔ)于字符數(shù)組中。在C++標(biāo)準(zhǔn)模板庫(STL)中提供了string類,實(shí)現(xiàn)了對(duì)字符串的封裝。
    2022-12-12
  • 內(nèi)核線程優(yōu)先級(jí)設(shè)置的方法介紹

    內(nèi)核線程優(yōu)先級(jí)設(shè)置的方法介紹

    本篇文章介紹了,內(nèi)核線程優(yōu)先級(jí)設(shè)置的方法。需要的朋友參考下
    2013-05-05
  • C語言 圖文并茂詳解程序編譯過程

    C語言 圖文并茂詳解程序編譯過程

    C語言是一種編譯型語言,需要把源文件進(jìn)行編譯之后才能運(yùn)行,它的編譯過程是:預(yù)處理:展開頭文件、宏替換,去掉注釋,條件編譯;編譯:檢查語法,生成匯編;匯編:把生成的匯編文件匯編成機(jī)器碼;鏈接:鏈接到一起生成可執(zhí)行程序
    2022-04-04
  • 詳解c++中的異常

    詳解c++中的異常

    程序在運(yùn)行過程中,有對(duì)也就有錯(cuò),正確那么就不用說了,但是如果錯(cuò)誤,那么我們?nèi)绾慰焖俚亩ㄎ坏藉e(cuò)誤的位置,以及知道發(fā)生了什么錯(cuò)誤。當(dāng)一個(gè)函數(shù)發(fā)現(xiàn)自己無法處理的異常,就會(huì)拋出一個(gè)異常,讓函數(shù)調(diào)用者直接或者間接的處理這個(gè)錯(cuò)誤。本文將詳解介紹c++中的異常
    2021-06-06
  • C++超詳細(xì)梳理IO流操作

    C++超詳細(xì)梳理IO流操作

    當(dāng)程序與外界進(jìn)行信息交換時(shí),存在兩個(gè)對(duì)象,一個(gè)是程序中的對(duì)象,另一個(gè)是文件對(duì)象。流是信息流動(dòng)的一種抽象,它負(fù)責(zé)在數(shù)據(jù)的生產(chǎn)者和數(shù)據(jù)的消費(fèi)者之間建立聯(lián)系,并管理數(shù)據(jù)的流動(dòng)
    2022-07-07

最新評(píng)論

保亭| 南丰县| 屯昌县| 丰原市| 盐边县| 淮南市| 仪征市| 榆树市| 古浪县| 娄烦县| 合山市| 凤凰县| 凤冈县| 高安市| 盐山县| 静乐县| 兴文县| 措美县| 东城区| 卢氏县| 枣强县| 永宁县| 堆龙德庆县| 于田县| 常山县| 永登县| 郁南县| 长春市| 新巴尔虎左旗| 玛沁县| 府谷县| 永新县| 辽阳市| 惠水县| 舞阳县| 榆社县| 玉田县| 桓仁| 宣恩县| 鹰潭市| 同江市|