我有一個C++類'Expression
',它帶有一個我想在Objective-C類'GraphVC
'中使用的方法。將C++方法傳遞給Objective-C方法
class Expression {
double evaluate(double);
}
我的Objective-C類:
@implementation GraphVC : UIViewController {
- (void)plot:(double(*)(double))f;
@end
我認爲,這將是最容易的繞過該採取雙重並返回一個雙,而不是C++對象函數指針,但我使用functional.h
沒有太大的成功。 Objective-C使用我的C++方法的最佳方式是什麼?
編輯:感謝您的快速回復。請允許我詳細闡述一下......我有一個用C++編寫的後端,我操縱Expression類型的對象。有理性,多項式,單項等的子類。我最初的想法是使用mem_fun,但我無法通過這種方式獲得代碼編譯。我也無法使用bind1st綁定this
指針。
- 編寫一個Objective-C的包裝是一種可能性,但我寧願使用現有
evaluate()
功能,我不想打破後端和iPhone GUI類之間的完全分離。 - 我不能有一個全球性的表達或者使用一個靜態方法(我需要繪製任意
Expression
實例。
我應該有更明確地說,我需要通過一個C++成員函數(不是一個靜態函數或現有的C函數)到一個Objective-C對象有沒有人有幸使用C++的<functional>
將成員函數轉換爲我可以在Objective-C對象中使用的指針,還是應該使用Objective-C包裝器?
我想他想把一個函數傳給`plot:`方法,而不是一個單一的值。 – dreamlax 2009-07-27 13:09:10