2010-06-09 4 views
0

Je reçois un « nom de classe attendue avant, ou, et je n'obtenir assez comment le résoudreNom de classe attendu avant ',' ou ';' .

Voici où l'erreur est:

class FXHost : public CPLAT::CP_Application, public CPLAT::CP_M_Listener 
{ 

Le fichier est FXHost.h et CPLAT :: est évidemment un espace de noms où CP_Application et CP_M_Listener sont

Je ne vois pas pourquoi ce serait faux Ce code fonctionnait bien dans Metrowerks (sans le CPLAT: :) mais dans XCode CPLAT est nécessaire en raison de la façon dont le le code a été écrit par le développeur précédent

Quelqu'un peut-il faire la lumière sur cette erreur?

MISE À JOUR: Voici un exemple de la classe CP_Application

template <class DOC_POLICY, class PRINT_POLICY, class UNDO_POLICY> 
class CP_EXPORT CP_Application : public CP_Application_Imp 
{ 
    public: 
    typedef DOC_POLICY     DocPolicyType; 
    typedef PRINT_POLICY    PrintPolicyType; 
    typedef UNDO_POLICY     UndoPolicyType; 

    CP_Application(); 
    virtual     ~CP_Application() throw(); 
+4

Il semble qu'il manque un #include qui déclare les classes CPLAT ::. –

Répondre

2

Il semble que le compilateur n'a pas vu la déclaration de classe pour les deux classes parent. La première chose que je vérifierais sont vos directives d'inclusion. Êtes-vous sûr d'inclure l'en-tête qui définit les classes CP_Application et CP_M_Listener?

+0

@acanaday - Cela en faisait partie. J'ai ajouté CP_Application et CP_M_Listener, mais il se plaint encore de CP_M_Listener. J'ai regardé cet en-tête et CP_M_Listener() contructor est protégé. Pourquoi auriez-vous un constructeur protégé? Est-ce mon problème? – Elliot

+0

@Elliot - Le but de la protection d'un constructeur est de sorte que seules les classes dérivées (ou méthodes de classe statiques) puissent l'invoquer (c'est-à-dire empêcher l'instanciation directe de la classe). C'est typiquement le cas avec les classes de base abstraites ou les singletons (plus généralement, les constructeurs privés). Cela, en soi, ne devrait pas provoquer d'erreurs de compilation. Quelle erreur obtenez-vous maintenant? – acanaday

+0

@acanaday - Mon erreur exacte est maintenant: erreur: nom de classe attendu avant ',' jeton - – Elliot