簡體   English   中英

如何在C ++中將函數數組公開為類成員?

[英]How to expose an array of functions as a class member in C++?

我必須在應用程序中公開一系列函數。 這些函數實際上是該類的方法,我將在構造函數中填充數組。 例如:

void Cpu::print() { // some func
    std:cout << "hi";
}

void Cpu::Cpu() { // class ctor
  funcArray = { &Cpu::print }
}

然后我要這樣做:

Cpu myCpu;
(myCpu.*funcArray[0])();

我所有的函數都將遵循相同的簽名“ void()”。

那可能嗎?

您不能分配給數組,但可以使用初始化程序列表:

class Cpu {
public:
    typedef void (Cpu::*Func)();

    ...

    Func funcArray[CONSTANT];
};

Cpu::Cpu() : funcArray({ &Cpu::print }) {
    // the rest of the array is filled with NULL pointers
}

然后

Cpu cpu;

(cpu.*(cpu.funcArray[0]))();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM