2011-09-07 1 views
0

Je faisais face à la même erreur que demandé dans ce questionErreur: le nom de la classe a-t-il été redéclaré comme un type de symbole différent?

je avec cette erreur surmonté par une solution de classe déclarant à l'avance dans mon dossier .h avec le class parameter

J'ai fichier FFTBufferManager.h and FFTBufferManager.cpp et l'utiliser dans HomeView.h and HomeView.mm fichier

class FFTBufferManager,CAStreamBasicDescription,DCRejectionFilter;

Mais maintenant, j'ai erreur

#include "FFTBufferManager.h" 
#include "aurio_helper.h" 
#include "CAStreamBasicDescription.h" 

class CAStreamBasicDescription,FFTBufferManager; //here it shows this error 
    EXpected Unqualified-id befor ',' token 


@interface HomeView 
{ 
    FFTBufferManager*   fftBufferManager; 
//it shows erros 
EXpected Unqualified-id befor ',' token 
    ISO c++ forbids declaration of FFTBufferManager with no type 

}

@property FFTBufferManager*  fftBufferManager; 
//shows error 
'FFTBufferManager' is not a type 
+0

Ici, j'ai la même erreur pour ma classe 'FFTBufferManager' qui est le fichier' .cpp' et je l'importe dans mon projet iphone – Heena

+0

juste pour être absolument clair, vous utilisez à la fois C++ et Objective-C dans votre projet? – Mac

+0

oui j'ai des fichiers '.h et .cpp' et je les utilise dans' .h et.mm' fichiers – Heena

Répondre

0

On dirait que vous essayez de créer une classe qui existe déjà dans l'un des cadres de cacao.

2

Je crois que vous utilisez à la fois C++ et Objective-C.

Je vous suggère de renommer tous vos .cpp et .m fichiers dans lequel le code Objective-C et C++ réunissez pour utiliser l'extension .mm - Informe le compilateur d'utiliser des règles « Objective-C++ », et arrêtera beaucoup de problèmes de compilateur.

En outre, il semble CAStreamBasicDescritpion est une classe C++ - vous devrez avant-déclarer avec class CAStreamBasicDescritpion;, pas@class CAStreamBasicDescritpion; (note, pas « à » signe) - la deuxième forme est seulement pour l'avant-déclarant Objective-C classes. Ce que je soupçonne est la cause première de l'erreur particulière que vous avez observée. en réponse

EDIT pour commenter: Je ne suis pas sûr de votre première question nouvelle - qui devrait fonctionner correctement tant que les deux FFTBufferManager et CAStreamBasicDescription sont des classes C++. En ce qui concerne votre second, en fonction de l'emplacement exact de cette ligne de code (CAStreamBasicDescription thruFormat;), vous devrez peut-être inclure l'en-tête plutôt que la déclaration directe: vous déclarez une instance de CAStreamBasicDescription ici, et le compilateur doit connaître son structure pour le faire.

+0

essayé votre suggestion avec 'classe FFTBufferManager, CAStreamBasicDescription;' mais il donne 'attendu non qualifié-id avant ',' token' et aussi où j'ai déclaré mon objet comme' CAStreamBasicDescription \t thruFormat; 'il donne' ISO: C++ interdit la delcaration de CAStreamBasicDescription sans type' – Heena

+0

éditez la question s'il vous plaît vérifier – Heena

+0

est-ce que, nous ne pouvons pas déclarer deux classes ensemble comme 'classe FFTBufferManager, CAStreamBasicDescription'? parce qu'il donne la première erreur à ',' – Heena

1

Vous ne pouvez pas déclarer plus d'une classe à la fois.

Changer vos déclarations à

class CAStreamBasicDescription; 
class FFTBufferManager; 

Le compilateur est à la recherche d'un unqualified-id parce qu'il croit que vous déclarer une variable de type CAStreamBasicDescription, il attend un nom de variable où vous avez donné une virgule.

Questions connexes