iT邦幫忙

0

[已解決]C/C++ 型別轉換 typedef, 前置宣告

c c++
  • 分享至 

  • xImage
  1. 目前有一個函數是
typedef void (*start)(int a, char b, void *c)

定義的func為

void start(int a, char b, void *c)
  1. 另一個函數是
class ddd{
    public:
        void start(int a, char b, void *c);
};

也等於

void ddd::start(int a, char b, void *c)
  • 而我使用的函數為:(輸入的是function)
void output(start _start)

需要把void ddd:start(...)轉換為void start(...)

不曉得要如何轉換,應該會像是output((start)ddd::start);

但轉換都不正確

argument of type "void (ddd::*)(int a, char b, void *c)" is incompatible with parameter of type "start"

or

invalid type conversion

有幾個困難點

  1. typedef 的 function 不能更改
  2. 需要將 start 放在 dddclass 裡面
  3. 只要型別轉換

感謝各位大大

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
JamesDoge
iT邦高手 1 級 ‧ 2023-02-13 08:25:28
ddd obj;
output(reinterpret_cast<start>(&ddd::start));

我要發表回答

立即登入回答