這行代碼,我需要翻譯從C++到Objective-C 這一行,但我真的不明白這行如何翻譯從C++到Objective-C
IntVar* MakeIntVar(int64 vmin, int64 vmax, const std::string& name);
這似乎是我沒有返回值的函數?
IntVar是由方式一類
class IntVar;
這行代碼,我需要翻譯從C++到Objective-C 這一行,但我真的不明白這行如何翻譯從C++到Objective-C
IntVar* MakeIntVar(int64 vmin, int64 vmax, const std::string& name);
這似乎是我沒有返回值的函數?
IntVar是由方式一類
class IntVar;
目的-C是C的一個擴展你應該用於調用目標C的方法和C函數。
對於方法,您在@interface
定義它們,通常寫在.h
文件,並在@class
,寫在一個.m
文件執行。
您可能不會編寫很多C函數,但您可以使用它們:例如NSLog()
,sin()
,等。 C函數是獨立的,不是類C中的類的一部分,但您通常在.h
中定義(或原型),並在.c
中執行。
如果上面的C部分,是陌生的,然後在你的Objective-C代碼寫入到NSLog
(或sin
等)呼叫,然後查找它的定義(在Xcode選擇NSLog
,右/控制鼠標,選擇「跳轉到「)。你會看到一條與你問題中的線很相似的線。
你有什麼是函數的定義(MakeIntVar
),它接受三個參數並返回一個值。函數的第三個參數具有C++類型,並且是C++參考參數(&
位),您需要了解C++才能知道如何調用此函數。
從您的問題/評論中不清楚您是將C++轉換爲Objective-C還是嘗試從Objective-C調用C++。如果後者您可能需要在Objective-C++(寫在.mm
文件中)中編寫一些橋接代碼。您將需要學習如何編寫Objective-C++並從Objective-C中調用它。
HTH
但'IntVar *'是返回值。請正確學習C++,不要在各種語言之間進行翻譯,即使原始語言不會以良好的代碼結束。 – Rakete1111
感謝您的快速答案 - 現在我瞭解更多 - 通常我不需要C++,但在我的情況下,我需要一個橋接頭爲這 – Dschella
@Dschella _「...沒有返回值?」_返回值顯然是'IntVar *'??? –