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

C++類作用域詳解

 更新時間:2026年05月23日 11:50:10   作者:小小編程路  
C++類作用域詳解,成員變量與函數(shù)僅在類內(nèi)或通過作用域解析符::::可見,類外訪問需明確指定類作用域,理解作用域與訪問控制的區(qū)別與聯(lián)系,本文介紹C++類作用域的相關知識,感興趣的朋友一起看看吧

C++類作用域是指類定義({} 內(nèi))所創(chuàng)建的獨立命名空間,其中聲明的成員(變量、函數(shù)、類型別名等)僅在類內(nèi)或通過作用域解析符 ::、對象/指針訪問時可見。‌‌

  • ‌類作用域始于 {,止于 }‌,所有成員(無論 public/private/protected)都位于此作用域內(nèi),‌作用域 ≠ 訪問權限‌:即使 private 成員在作用域內(nèi)可見,外部仍因權限限制無法訪問。
  • ‌類外定義成員函數(shù)時必須用 :: 指定所屬類‌(如 void Stack::Init()),否則編譯器視為全局函數(shù),導致名稱查找失敗。
  • ‌成員函數(shù)體內(nèi)可直接訪問類內(nèi)任意成員(含私有)‌,編譯器按“局部作用域 → 類作用域 → 外圍作用域”順序查找名稱;若與外部同名,可用 :: 顯式指定全局或類作用域(如 ::x 或 this->x)。
  • ‌不同類可含同名成員而不沖突‌(如 A::func() 和 B::func()),因類提供命名隔離;但嵌套類、靜態(tài)成員仍屬外層類作用域的一部分。
  • ‌類作用域不影響生命周期‌,僅影響編譯期名稱解析;對象構造/析構決定成員變量生存期,與作用域無關。‌‌

類作用域是 C++ 封裝與命名管理的基礎,配合訪問限定符(public/private/protected)實現(xiàn)接口控制,但二者本質不同:‌作用域決定“能否看到名字”,訪問控制決定“能否使用名字”‌。‌‌

C++ 類作用域(class scope)

簡單說:類里面定義的成員(變量、函數(shù)),都屬于類作用域,只能在類內(nèi)/通過對象/類名訪問

一、什么是類作用域

class { ... } 大括號內(nèi)部的所有:

  • 成員變量(屬性)
  • 成員函數(shù)(方法)
  • 類型別名、枚舉、靜態(tài)成員

都處在類作用域,外部不能直接訪問

class Person {
public:
    int age;       // 類作用域
    void show();    // 類作用域
};
// age、show 不能直接用,必須通過對象/類名

二、訪問規(guī)則(3種方式)

1. 類內(nèi)成員函數(shù):直接訪問

成員函數(shù)天然在類作用域內(nèi),直接用成員名

class Person {
public:
    int age = 18;
    void print() {
        cout << age; // 直接訪問,不用對象
    }
};

2. 類外普通函數(shù):必須用./->

Person p;
p.age = 20;
p.print();

3. 靜態(tài)成員:用類名::

class Person {
public:
    static int num;
};
int Person::num = 100; // 類外初始化
Person::num = 200;     // 類作用域訪問符 ::

三、作用域分辨符::(重點)

類名::成員名 專門用來訪問類作用域的成員

  • 類外定義成員函數(shù)
  • 訪問靜態(tài)成員
  • 解決名字沖突
class Person {
public:
    void show();
};
// 類外實現(xiàn),必須加 Person::
void Person::show() {
    cout << "hello";
}

四、類作用域 vs 局部作用域 vs 全局作用域

  1. 全局作用域:函數(shù)外面,整個文件可用
  2. 局部作用域:函數(shù)/代碼塊 {} 內(nèi),僅內(nèi)部可用
  3. 類作用域:class 內(nèi)部,必須通過對象/類名訪問

名字查找優(yōu)先級(從近到遠)

局部 > 類作用域 > 全局

int a = 100; // 全局
class A {
public:
    int a = 20; // 類作用域
    void f() {
        int a = 5; // 局部
        cout << a; // 輸出5,優(yōu)先局部
    }
};
  • 想訪問類內(nèi)的a:this->a
  • 想訪問全局的a:::a

五、this 指針與類作用域

成員函數(shù)里,this 代表當前對象,強制指定類作用域的成員,避免局部變量屏蔽

void setAge(int age) {
    this->age = age; 
    // this->age 是類成員,age是形參
}

六、訪問控制(和類作用域配套)

類作用域分3種訪問權限:

  • public:外部可訪問
  • private僅類內(nèi)可訪問(默認)
  • protected:類內(nèi) + 子類可訪問

極簡總結(必背)

  1. 類作用域:class 大括號內(nèi),成員必須通過對象或 類名:: 訪問
  2. :::作用域解析符,訪問類成員、靜態(tài)成員
  3. 名字查找:局部 > 類 > 全局
  4. this-> 可顯式訪問類成員,防止被局部變量覆蓋

到此這篇關于C++類作用域的文章就介紹到這了,更多相關C++類作用域內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C++通用動態(tài)抽象工廠的實現(xiàn)詳解

    C++通用動態(tài)抽象工廠的實現(xiàn)詳解

    在面向對象的編程中,一般通過繼承和虛函數(shù)來提供抽象能力,下面這篇文章主要給大家介紹了關于C++通用動態(tài)抽象工廠的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • C++取得當前時間的方法

    C++取得當前時間的方法

    這篇文章主要介紹了C++取得當前時間的方法,實例展示了通過系統(tǒng)函數(shù)獲取當前時間的實現(xiàn)方法,非常簡單易懂,需要的朋友可以參考下
    2014-10-10
  • C++設計模式之原型模式

    C++設計模式之原型模式

    這篇文章主要介紹了C++設計模式之原型模式,本文講解了什么是原型模式、為什么要使用原型模式、代碼實例等內(nèi)容,需要的朋友可以參考下
    2014-09-09
  • C語言三子棋一步步實現(xiàn)詳程

    C語言三子棋一步步實現(xiàn)詳程

    三子棋是一種民間傳統(tǒng)游戲,又叫九宮棋、圈圈叉叉、一條龍、井字棋等。將正方形對角線連起來,相對兩邊依次擺上三個雙方棋子,只要將自己的三個棋子走成一條線,對方就算輸了,想用c語言做出這個游戲,事實上也是比較簡單的,下面通過c語言進行對五子棋的分析
    2022-02-02
  • Qt讀寫CSV文件的三種方式及優(yōu)劣對比

    Qt讀寫CSV文件的三種方式及優(yōu)劣對比

    最近的要用到CSV格式的數(shù)據(jù),所以這篇文章講述一下QT讀取CSV文件數(shù)據(jù),下面這篇文章主要給大家介紹了關于Qt讀寫CSV文件的三種方式及優(yōu)劣對比的相關資料,需要的朋友可以參考下
    2023-11-11
  • 利用C語言實現(xiàn)三子棋(井字棋)小游戲

    利用C語言實現(xiàn)三子棋(井字棋)小游戲

    這篇文章主要為大家詳細介紹了利用C語言實現(xiàn)三子棋小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 使用VC6.0對C語言程序進行調(diào)試的基本手段分享

    使用VC6.0對C語言程序進行調(diào)試的基本手段分享

    這篇文章主要介紹了用VC6.0開發(fā)c語言程序的時候調(diào)試代碼的一些小技巧,需要的朋友可以參考下
    2013-07-07
  • C++ Cmake的構建靜態(tài)庫和動態(tài)庫詳解

    C++ Cmake的構建靜態(tài)庫和動態(tài)庫詳解

    這篇文章主要為大家詳細介紹了C++ Cmake的構建靜態(tài)庫和動態(tài)庫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Visual Studio Code 2020安裝教程及CPP環(huán)境配置(教程圖解)

    Visual Studio Code 2020安裝教程及CPP環(huán)境配置(教程圖解)

    這篇文章主要介紹了Visual Studio Code 2020安裝教程、CPP環(huán)境配置,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • C語言指針應用簡單實例

    C語言指針應用簡單實例

    這篇文章主要介紹了C語言指針應用簡單實例的相關資料,需要的朋友可以參考下
    2017-05-05

最新評論

天长市| 梧州市| 郸城县| 浏阳市| 桃源县| 仁化县| 当雄县| 临潭县| 凭祥市| 巴彦县| 黄石市| 邵武市| 南汇区| 义乌市| 都昌县| 庐江县| 永兴县| 新干县| 鄂托克前旗| 阜康市| 岚皋县| 兴仁县| 哈巴河县| 墨玉县| 若尔盖县| 长垣县| 桦川县| 扎鲁特旗| 普陀区| 洛阳市| 清流县| 延吉市| 延庆县| 益阳市| 宝清县| 阿克陶县| 邵阳市| 右玉县| 建湖县| 抚州市| 长宁县|