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

關(guān)于C++靜態(tài)成員函數(shù)訪問(wèn)非靜態(tài)成員變量的問(wèn)題

 更新時(shí)間:2013年10月09日 09:22:14   作者:  
靜態(tài)成員函數(shù)不能訪問(wèn)非靜態(tài)成員,這是因?yàn)殪o態(tài)函數(shù)屬于類而不是屬于整個(gè)對(duì)象,靜態(tài)函數(shù)中的 member可能都沒(méi)有分配內(nèi)存。靜態(tài)成員函數(shù)沒(méi)有隱含的this自變量。所以,它就無(wú)法訪問(wèn)自己類的非靜態(tài)成員

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

class a
{
public:
  static FunctionA()
  {
     menber = 1;
  }

private:
  int menber;
}


編譯上述代碼,出錯(cuò)。原因很簡(jiǎn)單大家都知道,靜態(tài)成員函數(shù)不能訪問(wèn)非靜態(tài)成員,這是因?yàn)殪o態(tài)函數(shù)屬于類而不是屬于整個(gè)對(duì)象,靜態(tài)函數(shù)中的 member可能都沒(méi)有分配內(nèi)存。靜態(tài)成員函數(shù)沒(méi)有隱含的this自變量。所以,它就無(wú)法訪問(wèn)自己類的非靜態(tài)成員。

那要想訪問(wèn)怎么辦呢?地球人都知道只要將:

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

int menber;
//change the line above to:
static int menber;

但是這個(gè)方法讓我們不得不將static function內(nèi)用到的成員變量都變成static的了,而且static的成員還要顯式初始化,有沒(méi)有更好的方法?答案是肯定的。代碼說(shuō)話:
復(fù)制代碼 代碼如下:

class a
{
public:
  static FunctionA(a* _a)
  {
    _a-> menber = 1;
 cout<<_a-> menber<<endl;
 _a->f();
  }
void f()
{
 cout<<"f被調(diào)用了"<<endl;
}
private:
  int menber;
};

前提是這個(gè)類要分配了內(nèi)存空間。其實(shí)這里我做的就是將一個(gè)對(duì)象指針作為靜態(tài)成員函數(shù)的“this”指針,意在模仿傳遞非靜態(tài)成員函數(shù)里this變量(在非靜態(tài)成員函數(shù)中都有this指針(push在ECX中似乎))

這個(gè)想法是我在一個(gè)class中要CreateThread的時(shí)候產(chǎn)生的,因?yàn)門(mén)hread 的funtion都是要求static的(是這樣的把?不知道為什么我寫(xiě)的code,Thread都是static的了。忘了哪兒看到的有這個(gè)要求了。有時(shí)間找找原因)。

可見(jiàn)C++是非常靈活的。

相關(guān)文章

  • C++函數(shù)重載的定義與原因詳解

    C++函數(shù)重載的定義與原因詳解

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng),使用數(shù)據(jù)庫(kù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C++面試八股文之什么是構(gòu)造函數(shù)

    C++面試八股文之什么是構(gòu)造函數(shù)

    構(gòu)造函數(shù)是一種特殊的成員函數(shù),用于創(chuàng)建和初始化類的對(duì)象,這篇文章主要為大家詳細(xì)介紹了C++中構(gòu)造函數(shù)的相關(guān)知識(shí)點(diǎn),需要的可以參考一下
    2023-06-06
  • C++?RAII在HotSpot?VM中的重要應(yīng)用解析

    C++?RAII在HotSpot?VM中的重要應(yīng)用解析

    RAII技術(shù)被認(rèn)為是C++中管理資源的最佳方法,進(jìn)一步引申,使用RAII技術(shù)也可以實(shí)現(xiàn)安全、簡(jiǎn)潔的狀態(tài)管理,編寫(xiě)出優(yōu)雅的異常安全的代碼,這篇文章主要介紹了C++?RAII在HotSpot?VM中的重要應(yīng)用,需要的朋友可以參考下
    2023-09-09
  • C++實(shí)現(xiàn)學(xué)校人員管理系統(tǒng)

    C++實(shí)現(xiàn)學(xué)校人員管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)學(xué)校人員管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 詳談C++的內(nèi)存泄漏問(wèn)題

    詳談C++的內(nèi)存泄漏問(wèn)題

    下面小編就為大家?guī)?lái)一篇詳談C++的內(nèi)存泄漏問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • C++深入刨析類與對(duì)象的使用

    C++深入刨析類與對(duì)象的使用

    類和對(duì)象是兩種以計(jì)算機(jī)為載體的計(jì)算機(jī)語(yǔ)言的合稱。對(duì)象是對(duì)客觀事物的抽象,類是對(duì)對(duì)象的抽象。類是一種抽象的數(shù)據(jù)類型;變量就是可以變化的量,存儲(chǔ)在內(nèi)存中—個(gè)可以擁有在某個(gè)范圍內(nèi)的可變存儲(chǔ)區(qū)域
    2022-05-05
  • C++?超詳細(xì)示例講解list的使用

    C++?超詳細(xì)示例講解list的使用

    list是一種序列式容器。list容器完成的功能實(shí)際上和數(shù)據(jù)結(jié)構(gòu)中的雙向鏈表是極其相似的,list中的數(shù)據(jù)元素是通過(guò)鏈表指針串連成邏輯意義上的線性表,也就是list也具有鏈表的主要優(yōu)點(diǎn),即:在鏈表的任一位置進(jìn)行元素的插入、刪除操作都是快速的
    2022-07-07
  • 示例詳解C++中的各種鎖

    示例詳解C++中的各種鎖

    C++中常見(jiàn)的鎖包括互斥鎖、遞歸互斥鎖、讀寫(xiě)鎖、定時(shí)互斥鎖、遞歸定時(shí)互斥鎖、自旋鎖和條件變量,互斥鎖用于防止多線程同時(shí)訪問(wèn)共享資源,遞歸互斥鎖允許同一線程多次獲取鎖,讀寫(xiě)鎖區(qū)分讀寫(xiě)操作,提高并發(fā)性
    2024-11-11
  • C語(yǔ)言實(shí)現(xiàn)實(shí)時(shí)鐘表

    C語(yǔ)言實(shí)現(xiàn)實(shí)時(shí)鐘表

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)實(shí)時(shí)鐘表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Qt實(shí)現(xiàn)語(yǔ)言切換的完整指南

    Qt實(shí)現(xiàn)語(yǔ)言切換的完整指南

    這篇文章主要為大家詳細(xì)介紹了如何在Qt中實(shí)現(xiàn)語(yǔ)言切換的完整指南,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-04-04

最新評(píng)論

炉霍县| 聊城市| 盘山县| 达拉特旗| 广昌县| 翁源县| 营口市| 株洲县| 鄂温| 桐柏县| 沐川县| 赤壁市| 罗平县| 花垣县| 措勤县| 嘉峪关市| 扶余县| 房产| 鄂托克前旗| 金门县| 阿勒泰市| 巴彦县| 腾冲县| 瑞昌市| 花莲县| 库尔勒市| 塔城市| 班戈县| 荥阳市| 兴国县| 湟源县| 鄂尔多斯市| 宁城县| 浏阳市| 商洛市| 凭祥市| 隆回县| 雅江县| 伊吾县| 鹿泉市| 长岭县|