[操作疑難] 請問有冇方法在C++ dynamic casting a prototype signature in a loop

本帖最後由 luckiejacky 於 2016-10-6 16:24 編輯
  1. typedef void (*tHello)(void, void);
  2. typedef int (*tHello2)(int, int);

  3. tHello hello_func_ptr = NULL;
  4. tHello2 hello_func_ptr2 = NULL;

  5. for (int i = 0; i < 1000; i++)
  6. {
  7.      //...
  8.      if (tbl.func_type == "tHello")
  9.      {
  10.          hello_func_ptr = (tHello) tbl.func_ptr;
  11.      }
  12.      else if (tbl.func_type == "tHello2")
  13.      {
  14.           hello_func_ptr2 =(tHello2) tbl.func_ptr;     
  15.      }
  16.      ///// 1000 branches 太多了...
  17. }
複製代碼

1. code snippet 睇唔到同個loop有乜關係
2. 個問題似 C 似唔係 C++...
3. 有無多少少interface的背景,你想用C++ inheritance再 dynamic_cast base pointer去 derived class pointer?
4. 還是你係想寫個template class...?

TOP