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

MFC Discussion :

Problème programmation objet


Sujet :

MFC

  1. #21
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    mais pourquoi mettre un .cpp pour chaque classe? je n'y comprend plus rien

  2. #22
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 264
    Points : 6 683
    Points
    6 683
    Billets dans le blog
    2
    Par défaut
    bah, c'est la façon la plus simple, la plus classique, plus logique et la plus mieux bien de développer en C++:
    pour chaque classe:
    un fichier .h dans lequel tu déclare ta classe
    ex: fichier A.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #ifndef _A_H_
    #define _A_H_
     
    class A{
      A(); //le constructeur
      int GetValue(); //une methode
     
      int m_iValue; //une variable membre
    }
     
    #endif
    un fichier .cpp dans lequel tu implémente ta classe:
    ex: fichier A.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include "A.h"
     
    A::A(){} //le constructeur
     
    int A::GetValue()
    {
      return m_iValue;
    }
    ensuite, dans si ton main utilise une classe A, il faudra ajouter #include "A.h" dans ton main.

    De manière générale, si tu utilise une classe dans un fichier, tu devra inclure le .h correspondant. Si tu utilise la MFC, beaucoup de classes sont définies dans stdafx.h, tu n'auras donc pas besoin d'inclure les classes "de base" tels CString par ex.

  3. #23
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    donc ça me ferai 3.h et 4.cpp avec le main...

    Je vais tester tout cela mais je suis un débutant dans la programmation, tout ce qui est dit dans ce sujet n'a pas marché jusque là...
    Ma classe etagere appelle un objet 'genre', ma classe genre appelle des objets 'etagere' et 'livre' et ma classe livre appelle un objet 'genre'.

    Le flou persiste à 2 endroit : - la création de fichiers .h et .cpp
    - L'appel de classes dans d'autres classes

    je vais tout recommencer, donc l'étape à suivre est un fichier .h et .cpp par classe, un fichier .cpp pour le main

    des #ifndef et #endif dans chaque fichier .h

    et les déclarations anticipées de classes.

    Est-ce exact ?

  4. #24
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 264
    Points : 6 683
    Points
    6 683
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Contrec
    donc ça me ferai 3.h et 4.cpp avec le main...
    exact
    Citation Envoyé par Contrec
    un fichier .h et .cpp par classe, un fichier .cpp pour le main
    exact

    Citation Envoyé par Contrec
    des #ifndef et #endif dans chaque fichier .h
    exact

    Citation Envoyé par Contrec
    et les déclarations anticipées de classes.
    La déclaration de ta classe, c'est le .h.

    Arghh, je viens de voir un erreur dans le code que je t'ai donné: il ne faut pas oublier le ; à la fin de la déclaration de ta classe:
    class A
    {
    ...
    };

  5. #25
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    Franchement si ça marche... je te dois le respect car j'ai perdu espoir mais je suis obligé de continuer pour mon BTS

  6. #26
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    Le fichier .cpp de chaque classe doit contenir les méthodes de la classe ou juste l'implémentation?

  7. #27
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 264
    Points : 6 683
    Points
    6 683
    Billets dans le blog
    2
    Par défaut
    tu utilise quel environnement? visual6?

  8. #28
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    Oui le studio 6, mon programme va etre assez petit donc je ne voudrai pas tout compliquer pourquoi?

  9. #29
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 264
    Points : 6 683
    Points
    6 683
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Contrec
    Le fichier .cpp de chaque classe doit contenir les méthodes de la classe ou juste l'implémentation?
    l'implémentation. Regarde bien l'exemple que je t'ai donné précédemment.
    dans le .h, tu déclare
    dans le .cpp, tu implétemente

  10. #30
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    ça ne marche pas du tout...

    Je peux laisser l'ensemble de mon code pour expertise (il n'y en a pas beaucoup) STP ?

  11. #31
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 264
    Points : 6 683
    Points
    6 683
    Billets dans le blog
    2
    Par défaut
    ok, vas-y. Juste un truc: sépare bien chaque fichier et indique le nom de chacun.

  12. #32
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    alors c'est parti :

    Classe etagere (fichier etagere.h) :

    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
    // Classe Etagere //
    #ifndef _ETAGERE_H_
    #define _ETAGERE_H
     
    class etagere 
    {
     
    private:
     
    	int numero;
    	int nbgenre;
    	genre tabgenre[100];
     
     
    public :
     
    	void init(int numEtagere);
    	int retourne_Etagere();
    };
     
     
     
    int etagere::retourne_Etagere()
    {
    	return numero;
    }
     
    #endif
    Classe etagere (fichier etagere.cpp) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include "etagere.h"
     
     
    void etagere::init(int numEtagere)
    {
    	numero = numEtagere;
    }
    Classe genre (fichier genre.h) :

    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
    // Classe Genre //
    #ifndef _GENRE_H_
    #define _GENRE_H_
     
    class genre
    {
     
    private:
     
    	char* libelle;
    	int nblivre;
    	livre tablivre[100];
    	etagere ob_etagere;
     
    public:
     
    	void init( char* libelleGenre, etagere uneEtagere);
    	char* retourne_genre();
    	int rangLivre (char* titreLivre);
    	int titre_comp;
    	void placeLivre (livre unLivre);
    };
     
     
     
    char* genre::retourne_genre()
    {
    	return libelle;
    }
     
     
    int genre::rangLivre(char* titreLivre)
    {
    	int i;
    	for (i = 0, i <= 100, i++)
    	{
    		titre_comp = tablivre[i].getTitre
    		while ((i <= nblivre) && (titre_comp < titreLivre))
    		{
    			i++;
    		}
    		return i;
    	}
    }
     
    void placeLivre(livre unLivre)
    {
    	int pos = 0;
    	int i = pos;
    	int rangLivre (unLivre.titre);
    	for (i = pos; i<= nblivre; i++)
    	{
    		tablivre[i] = tablivre[i+1];
     
    	}
    	tablivre[pos] = unLivre;
    }
     
     
    #endif
    Classe genre (fichier genre.cpp) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include "genre.h"
     
    void genre::init(char* libelleGenre, etagere uneEtagere)
    {
    	tablivre = 0;
    	strcpy(libelle, libelleGenre);
    	ob_etagere = uneEtagere;
    }
    Classe livre (fichier livre.h) :


    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
    // Classe Livre //
    #ifndef _LIVRE_H_
    #define _LIVRE_H_
     
    class livre
    {
     
    private :
    	char* titre;
    	genre leGenre;
    public :
    	void init(char* titreLivre, genre unGenre);
    	char* getTitre ();
    };
     
    char* livre::getTitre()
    {
    	return titre;
    }
     
    #endif
    classe livre (fichier livre.cpp) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include "livre.h"
     
    void livre::init(char* titreLivre)
    {
    	strcpy (titre, titreLivre);
    	leGenre = unGenre;
    }
    Programme principal (fichier Main.cpp) :

    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
    #include<iostream.h> // cin et cout //
    #include<string.h> // strcpy pour chaîne de caractères //
    #include<stdio.h> // gets pour chaîne de caractères //
    #include "etagere.h"
    #include "genre.h"
    #include "livre.h"
     
    void main()
    {
    	int numEtagere;
    	char* libelleGenre;
    	char* titreLivre;
    	int action;
    	char* libelle_s;
    	char* titre_s;
    	int num_etagere_s;
    	etagere uneEtagere;
    	livre unLivre;
     
    	cout<< "Que voulez-vous faire ?"
    	cout<<"\n\n";
    	cout<<"\t";
    	cout<<"1 : Creer une nouvelle etagere.";
    	cout<<"\n";
    	cout<<"\t";
    	cout<<"2 : Creer un nouveau genre.";
    	cout<<"\n";
    	cout<<"\t";
    	cout<<"3 : Creer un nouveau livre.";
    	cout<<"\n\n";
    	cin >> action
    	switch (action)
    	{
    		case 1:
     
    		cout<< "Veuillez entrez le numero de l'etagere à creer SVP.";
    		cout<< "\n\n";
    		cin >> numEtagere;
    		etagere.init (numEtagere);
    		cout<< "Vous avez cree l'etagere numero :";
    		cout<<"\n";
    		num_etagere_s = etagere.retourne_Etagere();
    		cout<< "\n";
    		numEtagere = 0;
    		break;
     
    		case 2:
     
    		cout<< "Veuillez entrez le libelle du nouveau genre ainsi que le numero de l'etagere SVP.";
    		cout<< "\n\n";
    		cin >> libelleGenre;
    		cin >>  numEtagere;
    		uneEtagere.init(numEtagere);
    		genre.init (libelleGenre, uneEtagere);
    		cout<< "Vous avez cree le genre :";
    		cout<< "\n";
    		libelle_s = genre.retourne_genre();
    		cout<< "\n";
    		numEtagere = 0;
    		libelleGenre = "";
    		break;
     
    		case 3:
     
    		cout<< "Veuillez entrer le titre du nouveau livre ainsi que son genre SVP.";
    		cout<< "\n\n";
    		cin >> titreLivre;
    		cin >> libelleGenre;
    		livre.init(titreLivre, libelleGenre);
    		cout<< "Vous avez cree le livre :";
    		cout<< "\n";
    		titre_s = livre.getTitre();
    		cout<< "\n";
    		titreLivre = "";
    		libelleGenre = "";
    		break;
    	}
    }
    Voilà c'est tout, tu risque de voir des abérations dans mon code, j'en suis désolé, il doit y avoir au moins 50 fautes...
    Merci de ta patience

  13. #33
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 264
    Points : 6 683
    Points
    6 683
    Billets dans le blog
    2
    Par défaut
    je te réponds plus tard, dans la soirée.

  14. #34
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    ok

  15. #35
    Membre averti
    Avatar de rolkA
    Inscrit en
    Juillet 2003
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 324
    Points : 369
    Points
    369
    Par défaut
    C'est vraiq ue c'est problématique:

    1. livre a besoin de connaitre la taille de genre pour la déclaration "genre leGenre;", donc sa définition complète
    2. Pour définir genre, il faut connaitre la taille de livre pour la déclaration "livre tablivre[100];", donc sa définition complète

    => cercle vicieux.

    Moi, je construirais mes objets sur le tas.
    C'est-à-dire que ceci ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    genre leGenre; 
    ...
    livre tablivre[100];
    ...
    genre tabgenre[100];
    ... serait remplacé par cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    genre* leGenre; 
    ...
    livre* tablivre[100];
    ...
    genre* tabgenre[100];
    Pourquoi ? Car là on n'a pas besoin de connaître la taille, il suffit juste de déclarer les classes, sans les définir totalement:

    Exemple avec etagere.h :
    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
     
    // Classe Etagere //
    #ifndef _ETAGERE_H_
    #define _ETAGERE_H
     
    class genre; // <- nouveau
     
    class etagere
    {
     
    private:
     
       int numero;
       int nbgenre;
       genre* tabgenre[100]; // changement
    ....
    Bien sur cela complique la gestion de la mémoire, mais de toutes façons, les objets sont faits pour être alloués sur le tas et non pas sur la pile (sauf pour les tous petits objets).

  16. #36
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    Citation Envoyé par Contrec
    tu risque de voir des abérations dans mon code, j'en suis désolé, il doit y avoir au moins 50 fautes...
    il faut repenser tout le programme.
    (comme dit rolkA --> include multiple = cercle vicieux)

    et il faut revoir également
    - les include
    - les ;
    - les conventions de nommage
    - les boucles
    - char* / std::string
    - std::vector
    - les constructeurs, les accesseurs, les modifieurs
    ...

    j'ai bien essayé de "rafistoler" le code, mais comme je ne sais pas exactement ce que tu veux faire c'est bof.


    Enjoy yourself !

  17. #37
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 264
    Points : 6 683
    Points
    6 683
    Billets dans le blog
    2
    Par défaut
    Excuse-moi, j'avais du taf urgent à finir...

    ok, c'est un bon début.

    1/ je dois savoir comment tu as créé ton projet. Est-ce que tu utilise la MFC?
    2/ IL NE DOIT PAS Y AVOIR DE CODE DANS TES .H!!!!
    ça c'est du code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int etagere::retourne_Etagere() 
    { 
       return numero; 
    }
    il faut donc le mettre dans le .cpp

    ça c'est la déclaration:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int retourne_Etagere();
    il ne doit y avoir QUE les déclarations dans ton .h

    3/ Il y a quelques erreurs (il s'agit peut-être de fautes de copier/coller ou de fautes de frappes):
    #ifndef _ETAGERE_H_
    #define _ETAGERE_H_ (tu as oublié le dernier _ )

    4/ n'utilise pas de char*.
    Citation Envoyé par divers membres de dvp
    Le char* c'est mal. L'adversaire de ben-hur conduisait un char*, regarde où ça l'a mené.
    Le char* est la première source d'erreur et de prises de têtes interminables.
    Si tu utilise la MFC, utilise des CString, sinon, des string(std). C'est pour ça qu'il est important de savoir quelle lib tu utilise (MFC ou std). Ce sera ton premier exercice: savoir quelle lib tu utilise

    Citation Envoyé par rolkA (je me suis pas trompé ;)
    C'est vraiq ue c'est problématique:

    1. livre a besoin de connaitre la taille de genre pour la déclaration "genre leGenre;", donc sa définition complète
    2. Pour définir genre, il faut connaitre la taille de livre pour la déclaration "livre tablivre[100];", donc sa définition complète
    Je suis d'accord. Mais à mon sens, le plus simple est de revoir un peu la conception de ce programme. Est-tu obligé d'utiliser cette structure?

    5/ il ya des erreurs d'algo dans tes fonctions, mais on va déjà essayer de compiler, le reste, on verra après.

  18. #38
    Membre averti
    Avatar de rolkA
    Inscrit en
    Juillet 2003
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 324
    Points : 369
    Points
    369
    Par défaut
    Citation Envoyé par r0d
    2/ IL NE DOIT PAS Y AVOIR DE CODE DANS TES .H!!!!
    ça c'est du code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int etagere::retourne_Etagere() 
    { 
       return numero; 
    }
    il faut donc le mettre dans le .cpp

    ça c'est la déclaration:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int retourne_Etagere();
    il ne doit y avoir QUE les déclarations dans ton .h
    Mwais... Si on veut des accesseurs ayant un coût nul, on les met inline... Mettre le code des accesseurs dans une en-tête n'est pas un tragédie

    Le reste me paraît aussi important: MFC (CString) ou librairie standard du C++ (std::string) ? En tout cas pas C (char*)...

  19. #39
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    Citation Envoyé par r0d
    Citation Envoyé par divers membres de dvp
    Le char* c'est mal. L'adversaire de ben-hur conduisait un char*, regarde où ça l'a mené.
    oui il me semble que j'ai vu ça quelquepart également

    si on connaissait les besoins, on pourrait te guider pour la conception des classes.


    Enjoy yourself !

  20. #40
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 264
    Points : 6 683
    Points
    6 683
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par rolkA
    Citation Envoyé par r0d
    2/ IL NE DOIT PAS Y AVOIR DE CODE DANS TES .H!!!!
    ça c'est du code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int etagere::retourne_Etagere() 
    { 
       return numero; 
    }
    il faut donc le mettre dans le .cpp

    ça c'est la déclaration:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int retourne_Etagere();
    il ne doit y avoir QUE les déclarations dans ton .h
    Mwais... Si on veut des accesseurs ayant un coût nul, on les met inline... Mettre le code des accesseurs dans une en-tête n'est pas un tragédie
    Je suis d'accord, mais pour l'instant, le mieux pour lui est de faire simple, donc d'appliquer des règles simples. Visiblement, il débute en C++, il ne faut donc pas cpmmencer à lui parler des subtilités de ce langage. Non?

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. problème programmation orientée objet
    Par hyuga33 dans le forum Général Python
    Réponses: 16
    Dernier message: 14/05/2010, 18h57
  2. probléme programmation Objet
    Par le5ejumeau dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 19/05/2008, 11h13
  3. Problème (programmation objet)
    Par Kypper_667 dans le forum C++
    Réponses: 3
    Dernier message: 01/07/2006, 16h50
  4. [ASP] Programmation objet ?
    Par Hell dans le forum ASP
    Réponses: 6
    Dernier message: 07/04/2005, 15h28
  5. Problème d'objet attendu
    Par odelayen dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 22/02/2005, 10h27

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