-1
我想在Pascal中傳遞一個類函數作爲C函數 的一個參數。它是通過關鍵字(object的過程)來實現的,所以編譯器會處理'this'參數。 但在C++中看起來很複雜。如何在C++中使用(pascal:object的過程)
#include <stdio.h>
typedef void (*func)(void);
class Class{
public:
void sub(void)
{
printf("Foo");
}
};
void test(func f)
{
f();
}
int main()
{
Class c;
test(c.sub);
}
問題是,在C++中,非靜態成員函數有一個隱藏的第一個參數,它成爲成員函數內的'this'指針。這意味着指向成員函數的指針與*指向非成員函數的指針*不相同。如果你搜索一下,你應該已經找到了成千上萬的網頁來解釋這個問題,其中包括許多重複的問題。 –
感謝Joachim,我已經做到了,但是我沒有找到像上面代碼那樣的簡單情況 – user3464620
我的意思是,我只是在尋找一個簡單的解決方案,遠離模板和C++ 11 – user3464620