c++ delegate怎樣聲明

c++
小樊
82
2024-07-15 23:51:00

在 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ù) Function1Function2,它們將作為委托的實(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ù)等。

0