首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> 關於VC++

VC++ 中雙冒號 (::) 作用域解析運算子詳細說明

     編輯:關於VC++

:: 是 C++ 的作用域解析運算子,主要兩大用途:

1. 類別成員定義與存取

類別宣告與定義分離時,類外定義成員需指明所屬類別:


class A {
    void f();  // 宣告
};
void A::f() {  // 定義:指明 f 屬於類別 A
    // 實作內容
}

2. 全域函式/變數明確指稱

當類別成員與全域符號同名時,成員函式內無前綴預設存取成員;加上 :: 強制存取全域符號:


void GlobalFunc() { }  // 全域函式

class B {
    void GlobalFunc() {  // 成員函式同名
        GlobalFunc();    // 呼叫自身成員(遞迴或錯誤)
        ::GlobalFunc();  // 呼叫全域函式
    }
};

VC++ 實務慣例

呼叫 Windows API 時慣加 :: 前綴,明確指稱全域命名空間函式,避免與類別成員衝突,提升程式碼可讀性:


::GetWindowLong(hWnd, GWL_STYLE);
::SetWindowPos(hWnd, NULL, 0, 0, 0, 0, SWP_FRAMECHANGED);
::MessageBox(NULL, "Text", "Title", MB_OK);

總結

  • ClassName::member:指定類別作用域
  • ::globalName:指定全域命名空間
  • 良好習慣:呼叫 API 與全域函式時主動加上 ::
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved