在 C++ 中聲明一個(gè)委托(delegate)最常見(jiàn)的方法是使用函數(shù)指針。委托是一個(gè)指向函數(shù)的指針,它可以指向不同的函數(shù)并調(diào)用它們。
以下是一個(gè)簡(jiǎn)單的示例代碼,演示如何聲明一個(gè)委托:
#include <iostream>
// 定義一個(gè)函數(shù)指針類(lèi)型,作為委托類(lèi)型
typedef void (*Delegate)();
// 定義一個(gè)函數(shù),用于作為委托的實(shí)現(xiàn)
void Function1()
{
std::cout << "Function1 called" << std::endl;
}
void Function2()
{
std::cout << "Function2 called" << std::endl;
}
int main()
{
// 聲明一個(gè)委托并將其指向函數(shù) Function1
Delegate delegate = &Function1;
// 調(diào)用委托指向的函數(shù)
delegate();
// 將委托指向函數(shù) Function2
delegate = &Function2;
// 再次調(diào)用委托指向的函數(shù)
delegate();
return 0;
}
在這個(gè)示例中,我們首先定義了一個(gè)函數(shù)指針類(lèi)型 Delegate
,然后定義了兩個(gè)函數(shù) Function1
和 Function2
,它們將作為委托的實(shí)現(xiàn)。在 main
函數(shù)中,我們聲明一個(gè)委托 delegate
并將其指向函數(shù) Function1
,然后調(diào)用委托指向的函數(shù)。接著,我們將委托指向函數(shù) Function2
,再次調(diào)用委托指向的函數(shù)。
這是一個(gè)簡(jiǎn)單的例子,實(shí)際中,委托可以用于更復(fù)雜的場(chǎng)景,比如將函數(shù)作為參數(shù)傳遞給其他函數(shù)等。