2017-06-16 1 views
-2

je travaillais avec JNI sur Android et je tentais de faire quelque chose comme:Typedef Redéfinition erreur

.h:

class jobject; //error here! 

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

foo.cpp:

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

Je vois que this a quelque chose de similaire mais je pense que le mien est un cas différent. Je n'ai pas de typedef sur les structures anonymes mais sur les structures nommées. Si nous voyons le fichier jni.h

typedef _jobject*  jobject; 

et here:

class _jobject {}; 
+0

Alors, où _exactement_ obtenez-vous cette erreur? Je ne vois pas de 'typedef' ici. –

+3

'do' est un mot-clé. Est-ce réellement accepté par le compilateur? –

+0

Quelle est votre erreur? –

Répondre

0

Vous faites essentiellement ceci:

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

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

Donc, il n'y a aucun moyen de faire quelque chose comme ce que je tente, étant donné bien sûr que je ne peux pas modifier les en-têtes JNI? – Zoso