我試圖編寫一個函數(我們稱之爲函數A),它可以接收用戶定義的函數作爲輸入(例如,用戶定義的函數任意數量的變量並返回一個整數 - 我們將稱這個函數爲B)。我想傳遞函數B作爲函數A的參數,只修改函數B中的一些變量,並根據需要從函數A中多次調用函數B.C++將用戶定義的函數傳遞給另一個函數
我在想我可以得到這個通過創建函數B指針的變量並在每次調用時修改指針來工作,但是我不知道如何創建它,所以如果要傳遞給函數B的變量的數量未知,我可以從函數A中調用函數B 。
有沒有人有任何建議,我可以如何將用戶指定的函數作爲參數傳遞給另一個函數?
簡答:您不能。當你調用B時,你必須傳遞*一些*參數。改變這一點需要改變源代碼,這意味着重新編譯。如果您確實需要可變數量的參數,則可能需要編寫B來接受類似於參數向量的東西。如果類型可以改變,那可能需要像'std :: vector'一樣。 –