簡體   English   中英

Objective-C實例進入C ++類

[英]Objective-C instance into C++ class

如何將Objective-c類實例化為CPP類?

例如我的CPP課程:

class Foo{
public:
    Foo();
private:
    MyObjcClass* myObjcClass; //it does not work
}

我該怎么做?

注意我為Objective-C使用.m,為C ++使用.cpp。

非常感謝!

  • 編譯為Objective-C ++
  • 或將其聲明為id

如果使用id ,則應在定義中引入類型,例如:

// Foo.mm
Foo::~Foo() {
  MyObjcClass * a = this->myObjcClass;
  [a release];
}

通常,您應該保留類型( MyObjcClass )並避免使用id ,但是將變量聲明為id與C和C ++兼容,因此可以使用id避免將包含Foo.hpp的所有內容編譯為ObjC ++。

有兩種方法可以做到這一點。 理智的方法是使用Objective-C ++。 您可以使用擴展名為.mm文件執行此操作,也可以更改構建設置。 默認設置是基於文件擴展名進行編譯,但是您可以強制在.cpp.m文件上使用Objective-C ++。

瘋狂的方法是在objc.h中使用原始的Objective-C接口。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM