IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

error: variable 'Histogram histo' has initializer but incomplet


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Invit�
    Invit�(e)
    Par d�faut error: variable 'Histogram histo' has initializer but incomplet
    Bonsoir � tous,

    Je vous pr�sente mon probl�me :

    J'ai ma classe Histogram :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
     
     typedef unsigned long int ulong;
        typedef unsigned short int ushort;
        typedef unsigned char ubyte;
        typedef unsigned int uint;
     
        #include "Image.h"
        #include <iostream>
     
     
        class Histogram
        {
            static const ushort NB_MAX = 256;
            uint histo[NB_MAX];
            uint grisMax;
     
        public:
     
            Histogram(const GrayImage &gi);
            GrayImage* draw() const;
        };
     
        const ushort Histogram::NB_MAX;
     
        /* END OF CLASS */

    Et ma classe Image :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
     
         #ifndef TP3_C___Image_h
        #define TP3_C___Image_h
     
     
        #include <iostream>
        #include <cstdlib>
        #include <sstream>
        #include <stdexcept>
        #include <vector>
        #include <stdio.h>
        #include <algorithm>
     
        extern "C" {
        #include <jpeglib.h> /* Ce sont des déclarations relatives à des fonctions C ! */
        }
     
        #include "Color.h"
     
        #include <cmath>
     
        typedef unsigned short int ushort;
        typedef unsigned long int ulong;
        typedef unsigned char ubyte;
        typedef unsigned int uint;
     
     
        template <typename T>
        class Image
        {
            friend class Histogram;
     
            /**
             * Longueur et largeur
             */
            ushort width, height;
     
            /**
             * Tableau d'images
             */
            T *array;
     
     
        public:
     
            /**
             * Constructeur de la classe
             */
            Image(const ushort &w,const ushort &h);
     
     
            /**
             * Constructeur de copie
             */
            Image(const Image<T> &img);
     
            /**
             * Destructeur
             */
            ~Image();
     
     
        /**
         * Méthode renvoyant une réference sur le pixel de
         * coordonnée x,y
         */
        T &pixel(ushort, ushort);
     
        /**
         * Méthode renvoyant le niveau de gris
         * correspondant au pixel de coordonée x,y
         */
        const T& pixel(ushort x, ushort y) const;
     
        /* ETC .. */
     
        Image<Color>* bilinearScale(ushort, ushort) const;
        Image<ubyte>* threshold(ubyte thresh= 128) const;
        Image<ubyte>* randomDither() const;
    };
     
         typedef Image<ubyte> GrayImage;
         typedef Image<Color> ColorImage;
    Ceci est un morceau du main :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
      #include <iostream>
             #include <iomanip>
        #include <fstream>
        #include <memory>
        #include <cmath>
        #include "Image.h"
        #include "Histogram.h"
     
        using namespace std;
     
        typedef Image<ubyte> GrayImage;
        typedef Image<Color> ColorImage;
     
     
        int main()
        {
            try
            {
                //========================================
                // Pour créer un rectangle vide et plein
                //========================================
     
                GrayImage gi(200,400); /* Une image en gris */
                ofstream os("rectangle.pgm", ios::binary);
                gi.clear(100);
                gi.fillRectangle(0, 0, 2,2, 244);
                gi.rectangle(0, 52, 50, 100, 244);
                gi.writePGM(os);
     
     
                //=========================================================
                // Pour lire une image, écrire par dessus et l'enregistrer
                //=========================================================
     
                ifstream ifsPgm("chat.pgm", ios::binary);
                auto_ptr<GrayImage> ptrGray(GrayImage::readPGM(ifsPgm)); /* Une image en gris */
                ptrGray->fillRectangle(0, 0, 50,100, 222);
                ptrGray->rectangle(70, 70, 50, 100, 244);
                ofstream chatOutPut("chatWrite.pgm", ios::binary);
                ptrGray->writePGM(chatOutPut);
     
     
                //=================================================
                // Pour lire une image et déssiner son histogramme
                //=================================================
     
                ifstream ifsHisto("chat.pgm", ios::binary);
                ofstream histogramOutPut("histogram.pgm", ios::binary);
                ptrGray.reset(GrayImage::readPGM(ifsHisto)); 
                if(ptrGray.get()) {
                	Histogram histo(*ptrGray);
                	auto_ptr<GrayImage> myHisto(histo.draw());
                    myHisto->writePGM(histogramOutPut);
    }

    Donc voil�, en compilant, je me retrouve avec cette erreur :

    error: variable �Histogram histo� has initializer but incomplete type
    J'ai fais �norm�ment de recherches sur le net et aucune ne marche ..

    Quelqu'un saurait-il m'�clairer ?

  2. #2
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    Bonsoir,

    normalement cette erreur indique que Histogram est un type connu, mais pas d�fini.
    G�n�ralement, il sera "forward initializ�" mais il faut l'include de la d�finition de la class compl�te pour l'utiliser.
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

  3. #3
    Invit�
    Invit�(e)
    Par d�faut
    Le truc c'est que dans le main, j'inclus la classe histo ..

  4. #4
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    Est-ce qu'il s'agit bel et bien de la premi�re erreur survenue ?
    Sinon, il faut traiter les erreurs dans l'ordre.
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

  5. #5
    Invit�
    Invit�(e)
    Par d�faut
    Et oui.. c'est bien la premi�re

    Je vais jamais m'en sortir avec ces foutu templates ma parole

Discussions similaires

  1. R�ponses: 2
    Dernier message: 09/12/2011, 08h03
  2. has initializer but incomplete type
    Par laflak dans le forum C
    R�ponses: 3
    Dernier message: 25/03/2008, 18h05
  3. R�ponses: 3
    Dernier message: 23/01/2008, 16h04
  4. Error :document.Form.elements has no properties
    Par makohsarah dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 25/07/2007, 16h11
  5. R�ponses: 9
    Dernier message: 27/09/2006, 15h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo