Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Programmation > Langage C++ > Vos questions sur la suite des cours > Lecture du sujet

Vos questions sur la suite des cours

Cours de programmation C++

Vous devez être inscrit pour pouvoir poster des messages

Page : Précédente  1  2  3  ...  33  34  35  36  37  38  39  ...  93  94  95  96  Suivante
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : Précédente  1  2  3  ...  33  34  35  36  37  38  39  ...  93  94  95  96  Suivante
Hors ligne psychoh13 # Posté le 19/05/2007 à 19:06:42
L'esprit surpasse le corps !
Avatar
Groupe : Membres
Reprise du dernier message de la page précédente :
Bon... On va arrêter ce dialogue de sourd parce qu'on n'arrête pas de répéter les mêmes choses que l'autre...
Répondons maintenant à une autre question. Dans la classe "durée" pourquoi il y a deux constructeurs ? (un sans paramètres et l'autre avec 3 paramètres qui ont une valeur par défaut), alors qu'on pourrait dans la déclaration de la classe, ne mettre qu'un seul constructeur avec les 3 valeurs par défaut ?

¡ Psycho !
Image utilisateur
Tutoriel Programmation Mac disponible !
Meilleur langage objet : Objective-C
Meilleur langage procédural : C
Meilleure API : Cocoa
Meilleur IDE : Xcode
Meilleure plate-forme : Mac OS X
 
Hors ligne Davidbrcz # Posté le 19/05/2007 à 19:12:56
Geek un jour, geek toujours !
Avatar
Groupe : Membres
Je penche pour une erreur car moi si je compile ca , GCC me jette avec une surcharge ambigue.

Partager grâce à l'open source et aux logiciels libres.

Mes articles sur developpez.com : http://come-david.developpez.com/

Da Nyug
 
Hors ligne lmghs # Posté le 19/05/2007 à 19:43:05
Groupe : Membres
Oui. Une erreur comme je l'avais signalé plus haut.

Sur Developpez, cette semaine Jean-Marc avait fait un petit rappel sur l'utilisation des valeurs par défaut et celle de la surcharge.
 
Hors ligne psychoh13 # Posté le 19/05/2007 à 19:43:49
L'esprit surpasse le corps !
Avatar
Groupe : Membres
Citation : Davidbrcz
Je penche pour une erreur car moi si je compile ca , GCC me jette avec une surcharge ambigue.

Justement, c'est ce que je veux dire, si on écrit ça comme ça :

Code : C
class Durée {
    /* variable membre */
    public:

    Durée(int heures = 0, int minutes = 0, int secondes = 0);

    /* autres méthodes */
};


Avec ça on a 4 constructeurs en un : Durée(), Durée(5), Durée(5,1) et Durée(5,1,4).
C'est-à-dire un constructeur par défaut et des constructeurs auxiliaires.

¡ Psycho !
Image utilisateur
Tutoriel Programmation Mac disponible !
Meilleur langage objet : Objective-C
Meilleur langage procédural : C
Meilleure API : Cocoa
Meilleur IDE : Xcode
Meilleure plate-forme : Mac OS X
 
Hors ligne Nanoc # Posté le 19/05/2007 à 19:45:58
Apprenez à utiliser la STL !!
Avatar
Groupe : Membres
Oui mais ça va merder si tu rajoutes le constructeur par défaut "classique":

Code : C++


class Durée {
    public:

    Durée(int heures = 0, int minutes = 0, int secondes = 0);
    Durée();
};


Lorsque tu feras un appel au constructeur avec aucun argument, ça va planter.

 
Hors ligne psychoh13 # Posté le 19/05/2007 à 19:56:10
L'esprit surpasse le corps !
Avatar
Groupe : Membres
Tu lis ce que j'écris ?

Si tu fais ça :

Code : C
class Durée {
    /* variable membre */
    public:

    // Constructeur par défaut et autre constructeur :
    Durée(int heures = 0, int minutes = 0, int secondes = 0);

    /* autres méthodes */
};


Tu n'as pas besoin de déclarer le constructeur par défaut il est intégré dans ce constructeur-là !
Tu vas pas rajouter quelque chose qui est déjà là quand même :D .
Édité le 19/05/2007 à 19:59:33 par psychoh13

¡ Psycho !
Image utilisateur
Tutoriel Programmation Mac disponible !
Meilleur langage objet : Objective-C
Meilleur langage procédural : C
Meilleure API : Cocoa
Meilleur IDE : Xcode
Meilleure plate-forme : Mac OS X
 
Hors ligne lmghs # Posté le 19/05/2007 à 20:07:35
Groupe : Membres
Non. Un seul constructeur qui dégénère en constructeur par défaut.
On ne peut pas déclarer en plus un constructeur à 0 argument, ni un constructeur à un argument entier, ni à 2 arguments entiers.

D'ailleurs le compilateur ne laisse pas passer.
 
Hors ligne Nanoc # Posté le 19/05/2007 à 20:08:39
Apprenez à utiliser la STL !!
Avatar
Groupe : Membres
En effet,

ce que tu dis est juste.

Mais ce que j'ai écris est exactement ce que as fait Mateo dans son tuto.
 
Hors ligne UltimAKnighT # Posté le 19/05/2007 à 20:11:41
Groupe : Membres
Personnelment je n'ai aucune erreur avec le code de m@téo, je build sous Code::blocks et ça compile sans probleme.

Cependant je comprends pourquoi vous dites qu'il n'y a pas besoin du constructeur par défaut. Mais c'est juste un exemple pour présenter la surcharge de constructeur.

UltimAKnighT
 
Hors ligne psychoh13 # Posté le 19/05/2007 à 20:13:26
L'esprit surpasse le corps !
Avatar
Groupe : Membres
Citation : Nanoc
En effet,

ce que tu dis est juste.

Mais ce que j'ai écris est exactement ce que as fait Mateo dans son tuto.


Je sais ! C'est pour ça que je pose la question : Pourquoi ne fait-il pas UN seul constructeur avec 3 arguments par défaut DANS la déclaration de classe À LA PLACE de la déclaration des arguments par défauts dans la définition.

Citation : UltimAKnighT
Personnelment je n'ai aucune erreur avec le code de m@téo, je build sous Code::blocks et ça compile sans probleme.

Je n'en ai pas non plus, mais c'est parce qu'il met les valeurs par défaut dans la définition de la méthode et non pas dans la déclaration. S'il les avait mises dans la déclaration, il y aurait ambiguïté selon le compilateur et là le constructeur par défaut ne serait plus utile.
Édité le 19/05/2007 à 20:16:31 par psychoh13

¡ Psycho !
Image utilisateur
Tutoriel Programmation Mac disponible !
Meilleur langage objet : Objective-C
Meilleur langage procédural : C
Meilleure API : Cocoa
Meilleur IDE : Xcode
Meilleure plate-forme : Mac OS X
 
Hors ligne UltimAKnighT # Posté le 19/05/2007 à 20:34:02
Groupe : Membres
Excuse moi mais je ne comprend pas où tu veux en venir.
Et de quel methode parles-tu? il me semble que tu parles du constructeur non?
Puis peux-tu mettre un exemple? je comprendrais surement mieux en y etant confronté, car j'ai du mal à voir où tu veux en venir (Jsuis un peu fatigué tu m'excusera).

UltimAKnighT
 
Hors ligne psychoh13 # Posté le 19/05/2007 à 20:36:25
L'esprit surpasse le corps !
Avatar
Groupe : Membres
Voilà la situation actuelle :

Duree.h :

Code : C
#ifndef DEF_DUREE
#define DEF_DUREE

class Duree
{
    public:

    Duree();
    Duree(int heures, int minutes, int secondes);

    private:

    int m_heures;
    int m_minutes;
    int m_secondes;
};

#endif


Duree.cpp :

Code : C
#include "Duree.h"


Duree::Duree() : m_heures(0), m_minutes(0), m_secondes(0)
{
}

Duree::Duree(int heures = 0, int minutes = 0, int secondes = 0) : m_heures(heures), m_minutes(minutes), m_secondes(secondes)
{
}



Voilà ce que je propose :

Duree.h :

Code : C
#ifndef DEF_DUREE
#define DEF_DUREE

class Duree
{
    public:

    Duree(int heures = 0, int minutes = 0, int secondes = 0);

    private:

    int m_heures;
    int m_minutes;
    int m_secondes;
};

#endif


Duree.cpp :

Code : C
#include "Duree.h"

Duree::Duree(int heures, int minutes, int secondes) : m_heures(heures), m_minutes(minutes), m_secondes(secondes)
{
}

¡ Psycho !
Image utilisateur
Tutoriel Programmation Mac disponible !
Meilleur langage objet : Objective-C
Meilleur langage procédural : C
Meilleure API : Cocoa
Meilleur IDE : Xcode
Meilleure plate-forme : Mac OS X
 
Hors ligne UltimAKnighT # Posté le 19/05/2007 à 20:38:56
Groupe : Membres
Euh...oui tu as enlevé le constructeur par défaut, et tu met les valeurs par defaut directement dans la déclaration du constructeur, dans la classe, mais ça me dit pas où tu voulais en venir.
Édité le 19/05/2007 à 20:41:51 par UltimAKnighT

UltimAKnighT
 
Hors ligne psychoh13 # Posté le 19/05/2007 à 20:41:51
L'esprit surpasse le corps !
Avatar
Groupe : Membres
'taing ! Voilà où je veux en venir :
Quand il y a un constructeur dont tous les arguments ont une valeur par défaut, il est inutile de créer un constructeur par défaut.
Édité le 19/05/2007 à 20:42:56 par psychoh13

¡ Psycho !
Image utilisateur
Tutoriel Programmation Mac disponible !
Meilleur langage objet : Objective-C
Meilleur langage procédural : C
Meilleure API : Cocoa
Meilleur IDE : Xcode
Meilleure plate-forme : Mac OS X
 
Hors ligne UltimAKnighT # Posté le 19/05/2007 à 20:46:56
Groupe : Membres
Oui donc on en reviens au constructeur par defaut qui ne servirai à rien. Mais je suis d'accord, lis bien ce que j'ai mis precedemment. Il fait ça pour l'exemple c'est tout, bref y'a surement de meilleurs exemples certes mais c'est un choix. On tournait en rond là ^^ .
Édité le 19/05/2007 à 20:48:57 par UltimAKnighT

UltimAKnighT
 
Hors ligne lmghs # Posté le 19/05/2007 à 21:03:57
Groupe : Membres
Tiens... une subtilité de la norme...
Citation : Norme C++ ISOIEC-14882-1998 §8.3.6, alinéa 6

The default arguments in a member function definition that appears outside of the class definition are added to the set of default arguments provided by the member function declaration in the class definition.
(Note: patché en 2003 pour les fonctions membre template)
Code : C++
class C {
    void f(int i=3);
    void g(int i, int j=99);
};
void C::f(int i=3)        // error: default argument already
{}                         // specified in class scope
void C::g(int i=88, int j)// in this translation unit,
{}                         // C::g can be called with no argument

Le dernier commentaire est très intéressant : il dit que C::g peut être vue comme sans arguments dans le contexte de l'unité de traduction considérée (en gros : le .cpp compilé plus tous les .h qu'il inclus directement ou indirectement).

L'alinéa 4 explique en gros que les valeurs par défaut des paramètres sont liées au déclarations, et qu'elles sont locales à des portées.

Honnêtement, si vous voulez un truc simple : les déclarations des valeurs par défaut sont à réserver à l'unique déclaration qui sera faite. Et du coup, le constructeur à 0 arguments est de trop, ici, dans le tuto. Autrement, franchement, je trouve que c'est de l'obfuscation.

PS: le brouillon du prochain standard correspond bien sur cette partie, il se retrouve depuis le blog d'Herb Sutter -> http://herbsutter.spaces.live.com/blog/cns!2D4327CC297151BB!159.entry

EDIT: adresse directe vers le bon article
Édité le 19/05/2007 à 21:07:17 par lmghs
 
Hors ligne UltimAKnighT # Posté le 19/05/2007 à 22:03:52
Groupe : Membres
C'est un peu farfelus je trouve mais ça a surement son utilité.
Toujours interressant de le savoir, merci pour l'info lmghs.

UltimAKnighT
 
Hors ligne M@teo21 # Posté le 20/05/2007 à 02:13:21
Doh ! Nuts. Mmh, donuts !
Avatar
Admins
Merci pour vos commentaires, j'ai bien pris note de ces erreurs, j'essaierai de les corriger dès demain.

Ce qui se conçoit bien s'énonce clairement,
Et les mots pour le dire arrivent aisément.

Nicolas Boileau (je suis fan)
Comment commenter une news sur le SdZ ?
Suivez l'aventure du SdZ et de Simple IT sur notre blog !
 
Hors ligne Black Templar # Posté le 04/06/2007 à 22:42:37
Avatar
Groupe : Membres
Bonjours !

J'aimerais savoir si Kayl comptait continuer sons tuto OpenGL ??
Il est super bien fait, mais encore loin d'être fini (si on prend en compte le sommaire que Kayl à fait ici : http://www.siteduzero.com/forum-83-49666-396885-ce-que-vous-saurez-faire-dans-la-suite-du-cours.html )

Vu que ça fait près un an que le cour en est au même point (je sais que ce n'est pas évident de trouver le temps et la motivation de créer un tuto), j'aurais voulu savoir où ça en était.

Merci

(Ne croyez pas que t'attende que le cour me tombe dans le bec comme ça !! J'essaye d'apprendre sur d'autre sites, mais les meilleurs sont en Anglais et je progresse trsètrèstrès lentement)
Hors ligne M@teo21 # Posté le 08/06/2007 à 20:06:50
Doh ! Nuts. Mmh, donuts !
Avatar
Admins
Je vais voir avec lui pour prendre une décision en effet, afin que les choses soient claires et qu'on ne se demande pas ce qui se passe ;)

Ce qui se conçoit bien s'énonce clairement,
Et les mots pour le dire arrivent aisément.

Nicolas Boileau (je suis fan)
Comment commenter une news sur le SdZ ?
Suivez l'aventure du SdZ et de Simple IT sur notre blog !
 
Hors ligne Ismus # Posté le 08/06/2007 à 20:22:47
J'aime le sang :p
Avatar
Groupe : Membres
Citation : M@teo21
Je vais voir avec lui pour prendre une décision en effet, afin que les choses soient claires et qu'on ne se demande pas ce qui se passe ;)


Ok merci ;)
J'attends la suite depuis assez longtemps.. :-°

PS: Tu ne trouve pas qu'on se ressemble un peu ? :p
Édité le 08/06/2007 à 20:23:34 par Ismus

<< L'expérience est une bougie qui n'éclaire que celui qui la tient :-° >>
IBA Graphics 1.0 : Logiciel TERMINE : bientôt sur le SdZ !
IBA Graphics 1.1 : 3,6% ||||||||||||||| Correction des différentes fautes orthographiques et grammaticales.
Image utilisateur
Image utilisateur
 
Hors ligne Yno # Posté le 08/06/2007 à 20:26:13
SCE
Avatar
Groupe : Membres
Bonsoir,

Etant donné qu'à présent le cours est en C++, il faudrait peut-être déplacer ce sujet dans la section Langage C++ non ? :)

Tutos OpenGL : Les shaders en GLSL | Rendus optimisés avec les VBOs
FAQs programmation : FAQ C | FAQ OpenGL / SDL / GTK+

Un moteur 3D à que il rox | Un canal IRC qu'il est bieng : #opengl@irc.epiknet.org
 
Hors ligne guimers8 # Posté le 08/06/2007 à 20:46:36
Cocoa/ObjC
Avatar
Groupe : Membres
Bah, non, ce qui est avant reste en C. De plus, le cours n'est pas dans une catégorie de langage particulier, il est juste dans Officiels/Programmation. :)

Image utilisateur

Mac mini, Intel Core Duo à 1,83GHz avec 2 Go RAM.
iPod Vidéo, 5.5G Noir, 30 Go.
Au fait, pourquoi ne pas visiter… mon blog ?
 
Hors ligne Yno # Posté le 08/06/2007 à 21:06:40
SCE
Avatar
Groupe : Membres
Citation
De plus, le cours n'est pas dans une catégorie de langage particulier, il est juste dans Officiels/Programmation.

Bah il n'allait pas créer 36 sous-sections non plus :-°
Citation
Bah, non, ce qui est avant reste en C.

Alors pourquoi pas la création d'un nouveu sujet ? :D

Enfin bon, je dis ça je dis rien, c'est une suggestion.

Tutos OpenGL : Les shaders en GLSL | Rendus optimisés avec les VBOs
FAQs programmation : FAQ C | FAQ OpenGL / SDL / GTK+

Un moteur 3D à que il rox | Un canal IRC qu'il est bieng : #opengl@irc.epiknet.org
 
Hors ligne Kreeg # Posté le 08/06/2007 à 21:15:15
Je mangerais bien du GNU...
Avatar
Groupe : Bannis
Pour le tuto OpenGL, si Kayl n'a plus le temps, la communauté peut peut-être le continuer ?

Parti définitivement.

Raise the Titanic ! [Voir le topic]
En mode Hard Rock (ACDC/GnR/VR §) - Slash et J. Petrucci sont mes héros \o/
Attention (va) aux (sur) messages (ce) subliminaux, (site) camarade !
Une question sur OpenGL, un problème ? Rejoignez #opengl sur EpikNet !
La SDL pue grave, mais pas SFML !
Le modo qui ne connaissait pas Dimitri Borgur... :p


 
Connecté Nesquik69 # Posté le 08/06/2007 à 21:50:05
Slave of the Rythm
Avatar
Groupe : Membres
Je ne pense pas non ;) . La raison pour laquelle je ne serais pas d'accord c'est que ce tuto est officiel et cela demande un soin irréprochable!
 
Hors ligne GuilOooo # Posté le 08/06/2007 à 22:04:40
PriPrOTtTt§!!!§
Avatar
Groupe : Membres
Le tutoriel étant toujours soumis aux règles de validation, il peut très bien avoir un soin "irréprochable" même s'il est géré par une communauté.
Sans vouloir dire du mal de lui, Kayl n'est pas un être supérieur, si ? S'il peut faire d'excellents tutos, d'autres personnes peuvent y arriver aussi.
Et un tuto rédigé à plusieurs, c'est faisable : regarde ceux de GTK et python.

Par contre c'est sûr faudrait désigner des gens. Mais attendons de voir ce qu'il en pense, s'il lui arrive de passer occasionnellement par ici.
Hors ligne guimers8 # Posté le 08/06/2007 à 22:24:35
Cocoa/ObjC
Avatar
Groupe : Membres
Il pourrait y avoir un groupe de personnes assez expérimentées qui alimenteraient un autre tuto, faisant suite à celui de Kayl, sans que ce soit forcement le même.

Ou kayl pourrait désigner des personnes volontaires (éventuellement sur présentation de celles-ci).
Édité le 08/06/2007 à 22:25:36 par guimers8

Image utilisateur

Mac mini, Intel Core Duo à 1,83GHz avec 2 Go RAM.
iPod Vidéo, 5.5G Noir, 30 Go.
Au fait, pourquoi ne pas visiter… mon blog ?
 
Connecté Nesquik69 # Posté le 09/06/2007 à 00:04:29
Slave of the Rythm
Avatar
Groupe : Membres
Le problème c'est que les tutoteurs officiels sont au nombre de deux parce que M@teo21 l'a voulu... et c'est un cas exceptionel!

Il vaut mieux que M@teo vous répondent lui-même mais je suis quasiment sûr de la réponse.
 
Hors ligne shuss # Posté le 09/06/2007 à 10:29:26
Avatar
Groupe : Membres
Je croyais que tout tuto complet et irréprochable avait une chance de devenir officiel ! Enfin bref, si Kayl n'a plus le temps, ça serait bien en effet qu'il transmette à une équipe ses projets pour la suite, pour que cette équipe le finisse.

Image utilisateur

 
Hors ligne M@teo21 # Posté le 09/06/2007 à 13:59:13
Doh ! Nuts. Mmh, donuts !
Avatar
Admins
On ne fera pas de tuto à plusieurs avant la sortie du prochain vostutos qui permettra justement de faire cela (sans créer un compte partagé). Donc rien avant cela à ce niveau, et je n'y suis pas foncièrement opposé mais cette décision revient à son auteur.

Ce qui se conçoit bien s'énonce clairement,
Et les mots pour le dire arrivent aisément.

Nicolas Boileau (je suis fan)
Comment commenter une news sur le SdZ ?
Suivez l'aventure du SdZ et de Simple IT sur notre blog !
 

Retour au forum "Langage C++" ou à la liste des forums

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 423 Zéros connectés | Requêtes SQL 6 requêtes | Temps de génération de la page : Total (SQL) 0.1008s (0.0801s)