在C++中,函數(shù)對象(也稱為仿函數(shù)或functor)是一種可以像函數(shù)一樣被調(diào)用的對象。它們可以通過成員變量來管理狀態(tài)。下面是一個簡單的例子,展示了如何在C++函數(shù)對象中管理狀態(tài):
#include <iostream>
// 定義一個帶狀態(tài)的函數(shù)對象
class Counter {
public:
Counter() : count(0) {} // 構(gòu)造函數(shù)初始化狀態(tài)
// 重載()運(yùn)算符,使其可以像函數(shù)一樣被調(diào)用
int operator()() {
return count++; // 返回當(dāng)前狀態(tài)值并遞增狀態(tài)
}
private:
int count; // 狀態(tài)變量
};
int main() {
Counter counter; // 創(chuàng)建一個Counter對象
std::cout << "Counter(): " << counter() << std::endl; // 輸出0
std::cout << "Counter(): " << counter() << std::endl; // 輸出1
std::cout << "Counter(): " << counter() << std::endl; // 輸出2
return 0;
}
在這個例子中,我們定義了一個名為Counter
的函數(shù)對象,它包含一個名為count
的狀態(tài)變量。我們在構(gòu)造函數(shù)中初始化狀態(tài),并重載()
運(yùn)算符以便像函數(shù)一樣調(diào)用它。每次調(diào)用operator()
時,它都會返回當(dāng)前狀態(tài)值并遞增狀態(tài)。
這只是一個簡單的例子,實(shí)際上你可以根據(jù)需要管理更復(fù)雜的狀態(tài)。你可以在函數(shù)對象中添加更多的成員變量和方法來實(shí)現(xiàn)更高級的功能。