1
我有3個文件。如何導入將[C++]類導入[objective-c]類的[objective-C++]類?
// A.h/A.m, Objective-C.
#import "B.h"
@interface A
{
B* b;
}
@end
// Uses instance method of B in implementation.
// B.h/B.mm, Objective-C++.
#import "C.h"
@interface B
{
C c; // c is declared without pointer.
}
@end
// Uses member methods of C in implementation.
// C.h/C.cpp, C++.
#include <Box2D/Box2D.h> // C++ library.
class C
{
private:
b2World world;
b2Body* ground;
b2Body* ball;
public:
PhysicsSimulator();
~PhysicsSimulator();
void setupWorld();
void cleanupWorld();
void tickWorld();
};
// One file of Box2D library include <cassert>
這會導致編譯時錯誤。
/Users/eonil/Work/Trials/Box2DTest/Library/Box2D/Common/b2Settings.h:22:10: fatal error: 'cassert' file not found [1]
它看起來我從Objective-C導入Objective-C++時必須做些特別的事情。但我無法弄清楚它是什麼。我不確定這是否可能。那是什麼..?
哦,對不起,我有一些重要的一點錯誤。 'B'中的'c'是無指針聲明的。我修改了問題。 – Eonil 2011-03-13 15:12:15
你不能在普通的Objective-C中做到這一點。如果您只想在您的Obj-C類中放入一個C++類作爲成員,那麼一切都必須是Objective-C++。 – 2011-03-13 15:21:37
感謝您的保證:) – Eonil 2011-03-13 15:26:26