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++中區域性類的用例

區域性類在函式作用域內宣告,這在下面討論的幾種場景中非常有用。

  1. 區域性類非常適合封裝小型且臨時的功能,這些功能只需要在一個函式或方法中使用。
  2. 區域性類可用於為諸如 std::sort、std::find 或 std::for_each 之類的演算法定義自定義比較邏輯。
  3. 它也適用於事件驅動程式設計或回撥等場景,並且可以使用 STL 演算法實現自定義迭代邏輯。

更新於:2024年11月19日

3K+ 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告