C++中的區域性類
在C++中,在函式內部宣告的類稱為區域性類,因為它只對該函式區域性可見,其作用域僅限於該函式。
語法
以下是區域性類的語法。
#include<iostream> using namespace std; void func() { class LocalClass { }; } int main() { return 0; }
在上例語法中,func() 是一個函式,而類 LocalClass 在函式內部定義。因此,它被稱為區域性類。
區域性類名只能在其所屬的函式中使用,不能在函式外部使用。此外,區域性類的方法必須在其內部定義。區域性類不能有靜態資料成員,但可以有靜態函式。
示例
以下是一個演示C++中區域性類的程式。
#include<iostream> using namespace std; void func() { class LocalClass { private: int num; public: void getdata( int n) { num = n; } void putdata() { cout<<"The number is "<<num; } }; LocalClass obj; obj.getdata(7); obj.putdata(); } int main() { cout<<"Demonstration of a local class"<<endl; func(); return 0; }
輸出
Demonstration of a local class The number is 7
解釋
- 在上例程式中,類 LocalClass 在函式 func() 中宣告,因此它是一個區域性類。
- 該類具有一個私有資料成員 (num) 和兩個公共成員函式 (getdata() 和 putdata())。
- 在 func() 內部,我們建立了一個名為 LocalClass 的物件,其中 getdata() 方法設定為 7,putdata() 方法顯示它。
- 在 main() 函式中,呼叫了 func() 函式。
C++中區域性類的用例
區域性類在函式作用域內宣告,這在下面討論的幾種場景中非常有用。- 區域性類非常適合封裝小型且臨時的功能,這些功能只需要在一個函式或方法中使用。
- 區域性類可用於為諸如 std::sort、std::find 或 std::for_each 之類的演算法定義自定義比較邏輯。
- 它也適用於事件驅動程式設計或回撥等場景,並且可以使用 STL 演算法實現自定義迭代邏輯。
廣告