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 :

Héritage de paramètres par défaut


Sujet :

C++

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 56
    Par défaut Héritage de paramètres par défaut
    Bonjour à tous
    Ma foie voici un titre de post tout à fait explicite
    Un petit exemple...
    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
     
    class stRenderSystem
    {
    public:
    	virtual void createWindow(int width = 800, int width = 600) = 0;
    	...
    };
     
    class stD3D9RenderSystem : public stRenderSystem
    {
    public:
    	virtual void createWindow(int width, int width)
    	{
    		...
    	}
    };
    Je voudrais donc savoir si stD3D9RenderSystem hérite des paramètres par défaut de stRenderSystem (enfin de la méthode à surdéfinir ^^)

    Merci à tous

  2. #2
    screetch
    Invité(e)
    Par défaut
    cela depend laquelle tu appelles. le compilateur va trouver la declaration qui correspond le mieux a ce que tu as ecrit, et si la declaration a des parametres par defaut il les utilisera, sinon bah non.

    en gros si tu ecris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    stRenderSystem* system = new stD3D9RenderSystem;
    system->createWindow(); //OK, car system est de type stRenderSystem*
    stD3D9RenderSystem* system = new stD3D9RenderSystem;
    system->createWindow(); // Nah, car dans l'autre classe tu ne specifies pas les parametres par defaut

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Par défaut
    Salut,

    Ca dépend de ce que tu veux, tu ne vas pas pouvoir faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    stD3D9RenderSystem s;
    s.createWindow();
    Ca ne compile pas.

    Par contre ça oui :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    stRenderSystem* s = new stD3D9RenderSystem;
    s->createWindow();
    Il faut faire un peu attention avec les paramètres par défaut d'une manière générale, cf. GotW005.
    A mon avis dans ton cas ça serait aussi simple de mettre 2 constructeurs, un par défaut et un avec les 2 entiers...

    MAT.

  4. #4
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 56
    Par défaut
    Merci à vous deux my HEROS
    @+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] Paramètre par défaut dans une fonction
    Par RobinJulie dans le forum Windows Forms
    Réponses: 5
    Dernier message: 18/01/2012, 14h07
  2. Restaurer les paramètres par défaut au démarrage
    Par Manu14400 dans le forum Access
    Réponses: 1
    Dernier message: 22/09/2005, 15h21
  3. Passage d'un type procédure en paramètre par défaut
    Par Floverdoz dans le forum Langage
    Réponses: 1
    Dernier message: 22/07/2005, 17h48
  4. Réponses: 2
    Dernier message: 19/03/2005, 17h09

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