2017-06-16 96 views
-2

我是用JNI工作在Android和我试图做这样的事情:重新定义的typedef错误

foo.h中

class jobject; //error here! 

class Foo { 
void dowork(const jobject&); 
} 

Foo.cpp中

#include <jni.h> 
: 
: 
Foo::dowork(const jobject& obj) 
{ 
    //Do something 
} 

我看到this有类似的东西,但我的收费是我的不同情况。我没有关于匿名结构的typedef,而是关于命名结构。如果我们看到文件jni.h

typedef _jobject*  jobject; 

here

class _jobject {}; 
+0

那么,_exactly_你得到这个错误?我在这里没有看到任何'typedef'。 –

+3

'do'是一个关键字。这是否真的被编译器接受? –

+0

你的错误是什么? –

回答

0

你基本上是这样做的:

typedef int* Foo; // typedefing Foo to int* 

class Foo   // attempt to declare a class with a name already used for typedef 
{ 
}; 
+0

所以当我无法修改JNI头文件时,没有办法像我尝试的那样做一些事情? – Zoso