3 votes

erreur : 'x' n'est pas un nom de type

Lorsque j'essaie de déclarer une instance de ma classe 'Game', je reçois l'erreur de compilation "error : 'Game' does not name a type" pour main.cpp.

Si cela n'a probablement pas d'importance, mais j'utilise des codeblocks.

Code pertinent de Game.cpp

#include "../include/main.h"

class Game
{
    private:

    public:
};

Code pertinent de Main.cpp

#include "../include/main.h"

Game g; //this is the line it is referring to

int main(int argc, char* args[])
{
    return 0;
}

Je commence seulement à apprendre le c++ donc j'ai probablement oublié quelque chose d'évident :(

3voto

paulsm4 Points 39422

Inclure la déclaration pour "Game" dans un en-tête

notepad main.h =>

#ifndef MAIN_H
#define MAIN_H

class Game
{
    private:
      ...
    public:
      ...
};
#endif
// main.h

notepad main.cpp =>

#include "main.h"

Game g; // We should be OK now :)

int 
main(int argc, char* args[])
{
    return 0;
}

gcc -g -Wall -pedantic -I../include -o main main.cpp

Notez comment vous :

1) Définissez vos classes (ainsi que les typedefs, constantes, etc.) dans un en-tête.

2) #inclure l'en-tête dans tout fichier .cpp qui a besoin de ces définitions

3) Compilez avec "-I" pour spécifier le répertoire (ou les répertoires) contenant vos en-têtes.

J'espère que ça aidera

0voto

tyger Points 181

Vous pouvez peut-être supprimer la déclaration de la classe Game dans Game.cpp et essayer de créer un autre fichier nommé "Game.h" sous ../inclue/ comme :

#ifndef _GAME_H_
#define _GAME_H_

class Game
{
    private:
    public:
};

#endif

et inclure ce fichier Header dans Main.cpp. Ensuite, je pense que l'erreur ne se produira pas :)

Parce que nous utilisons habituellement le fichier .cpp pour la définition des classes et le fichier .h pour la déclaration, alors incluez le fichier .h dans Main.cpp.

0voto

karthik Points 4916

Le fichier C ou le fichier cpp est une question d'erreurs multiples se produisant est compilé.

Le fichier d'en-tête de chaque

 # pragma once 
 Or
 # Ifndef __SOMETHING__ 
 # define __SOMETHING__

 Add the code ...

 # Endif

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X