0

私はこれについてグーグルで読んでいますが、まだ答えが出ていません。誰かがこれを手伝ってくれるかもしれません。

私が得るエラーは次のとおりです:「{」トークンの前に期待されるクラス名

Carte_num.h

#ifndef CARTE_NUM_H
#define CARTE_NUM_H
#include <string.h>
#include <iostream>

#include "Carte.h"

using namespace std;

class Partie;
class Carte_num : public Carte
{                      //<--------------this is where I get the error
    public:
        Carte_num(int haut,string typ, char coul [8], int nb_p);
        ~Carte_num();
   protected:
    int hauteur;
   public:


friend Partie;
};

#endif // CARTE_NUM_H

Carte.h

    #ifndef CARTE_H
#define CARTE_H
#include <iostream>
#include <string.h>
#include "Partie.h"

using namespace std;

class Joueur;
class Partie;
class Carte
{
    public:
        Carte();
        Carte( string typ, char coul [8], int nb_p);
        ~Carte();
    protected:
        char couleur[8];
        int nb_pts;
        string type;
    public:
        //bool action(Partie p);
        string definir();
        bool est_valable(Partie p);
        //int getnb_pts() { return(nb_pts);}

friend class Joueur;
friend class Partie;

};

#endif // CARTE_H

私が得るエラーは次のとおりです。以前に示した「{」トークンの前に期待されるクラス名

4

2 に答える 2

5

まず、friend宣言は

friend class Partie;

<string>次に、ヘッダーを含める必要があります。末尾の.h. std::stringが定義されているところです。

Partie.h第 3に、たとえば includeCarte.hまたはCarte_num.h. #include "Partie.h"から削除することで修正できます(の実装ファイルCarte.hに含める必要がある場合があります)。Carte

もう 1 つの可能性は、;のクラスCarte宣言の後に欠落があることですCarte.h

于 2013-04-30T09:24:18.140 に答える
0

あなたのfriend宣言は正しくありません。

正しい形式を参照してください。

class Carte_num : public Carte
{       
    // ...    
    friend class Partie; 
};
于 2013-04-30T09:31:29.140 に答える