iT邦幫忙

2021 iThome 鐵人賽

DAY 23
0

函數指標只要參數與返回值相同是可以隨時指向一個新的函數如前所說的max, min,當然C++作為那個站在鄙視鏈頂端的語言(汗),當然要有更風騷的套路,函數指標+陣列迸出新滋味,比如我們有三個函數A, B , C 它們的參數都是int無法返回值,因為它們的型態都一樣自然可以用同類型的函數指標隨意指向任何一個函數

void (*func)( int );
func=function_A;
func(99);
func=function_B;
func(99);
func=function_C;
func(99);

或是玩更有趣一點,乾脆創造一個函數指標"陣列"存放三個函數,接著就像讀取陣列元素一樣呼叫函數

//創造一個函數指標"陣列f包含三個function,A/B/C
void (*f[ 3 ])( int ) = { function_A, function_B, function_C };
cout << "輸入0~2選擇你要執行的函數,超過程式會直接退出";
cin >> choice;
//while迴圈只要choice<=2就會執行對應的函數
while ( ( choice >= 0 ) && ( choice < 3 ) ) 
{
        (*f[ choice ])( choice ); 
        cout << "Choice your fun between 0 ~ 2, or exit under 2";
        cin >> choice;
}

原始碼: examples


上一篇
Day22
下一篇
Day24
系列文
少年DevOps的C++奇怪漂流30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言