Salut,
J'avoue que j'ai rencontré ce problème il y'a une semaine de cela, mais j'ai cru que je l'ai résolu, mais il persiste, voilà le problème:
j'ai 3 fichier .h:
Engine.h
Object.h
Buffer.h
Tennez vous, ça va ce compliquer un peu ^^:
voila les inclusions des fichiers :
Buffer.h:
#ifndef DEF_BUFFER
#define DEF_BUFFER
#include<iostream>
#include"Engine.h"
Engine.h:
#ifndef DEF_ENGINE
#define DEF_ENGINE
#include<iostream>
#include<string>
#include<stdio.h>
#include<stdlib.h>
#include<SDL\SDL.h>
#include<SDL\SDL_image.h>
#include<SDL\SDL_ttf.h>
#include"Object.h"
#include"Buffer.h"
Object.h:
#ifndef DEF_OBJECT
#define DEF_OBJECT
#include<iostream>
#include<string>
#include<SDL\SDL.h>
#include<SDL\SDL_image.h>
#include<SDL\SDL_ttf.h>
#include"Engine.h"
#include"Buffer.h"
Et voila ce que me dit le compilo:
Citation : Compilo
Buffer.h 13 Error: 'Object' has not been declared
Buffer.h 13 Error: ISO C++ Forbids dclaration of 'object' with no type
Buffer.h 20 Error: ISO C++ Forbids dclaration of 'Object' with no type
Buffer.h 20 Error: expected ';' before '*' token
Dans les lignes 13 et 20, il y'a la déclaration de l'objet object de type Objet.
Merci de m'aider à surmonter ce CAUCHEMAR.
La maîtrise des fondamentaux est le fondamental de la Maîtrise.
En fait il suffit de n'inclure que les headers des autres classes uniquement dans les fichiers source.
Ainsi tes 6 fichiers (headers & sources) devront comprendre ceci :
Buffer.h :
// Aucun include.
// Juste un déclaration des autres classes utilisée.
class Engine;
Buffer.cpp :
// Là on met l'include qui lui ne réinclurat pas le fichier source(on ne boucle pas).
#include "Buffer.h"
#include "Engine.h"
Engine.h :
// Idem.
class Object;
class Buffer;
Engine.cpp :
// Idem.
#include "Engine.h"
#include "Object.h"
#include "Buffer.h"
Object.h :
class Buffer;
class Engine;
Object.cpp :
#include "Object.h"
#include "Buffer.h"
#include "Engine.h"
EDIT : @ Chlab_lak -> Apparement non. Mais moi non plus, je pensai qu'il n'offrait pas de réponse vu qu'il n'a pas trouvé. Désolé d'avoir posté ta réponse...
Oui, je l'ai lu, il parle des classes, mais la partie inclusion est trop brève, mon problème n'y est pas exposé.
EDIT:
C'est bon le problème est réglé, merci à vous tous, et surtout à Chlab_lak pour le lien qui est très util est que je recommende à tout le monde.
Merci beaucoup.
La maîtrise des fondamentaux est le fondamental de la Maîtrise.
Problèmes d'inclusion de headers
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
La maîtrise des fondamentaux est le fondamental de la Maîtrise.
La maîtrise des fondamentaux est le fondamental de la Maîtrise.
La maîtrise des fondamentaux est le fondamental de la Maîtrise.