wxDev.fr, le portail francophone consacré à wxWidgets ! ( The french portal for wxWidgets )  
Esp. membre
Recheche rapide



Recherche avancée
Statistiques
Membres inscrits :2359

Membres en ligne : 0
Invités en ligne : 4

Valid XHTML 1.0 Transitional

Valid CSS2

Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Utilisation générale wxWidgets
» Question de constructeur
Conversation (Résolue) : Question de constructeur
24-05-2012 15:07:03  Question de constructeur #1
Claude (Membre)
Inscrit le : 16-02-2011
Messages: 14
Snippets: 0
Tutoriels: 0
Hors ligne
Bonjour, :)

Malgré mes recherches sur internet, la doc wxWidgets et mes bouquins sur le C++, je n'ai pas trouvé de réponse à la question qui va suivre...

Mais peut-être, l'ai-je mal posée ou mal cherché...

Qu'elle est la différence entre:

Code wxWidgets:

myFrame::myFrame(wxWindow* parent, wxWindowID id, const wxString& caption,
                 const wxPoint& pos, const wxSize& size, long style)
{
   Create(parent, id, caption, pos, size, style);
}


et

Code wxWidgets:

myFrame::myFrame(wxWindow *parent, const wxWindowID id, const wxString& title,
                 const wxPoint& pos, const wxSize& size, const long style)
        :wxFrame(parent, id, title, pos, size, style )
{
 
}


Les deux fonctionnent, bien évidement, mais qu'elle est la plus judicieuse et pourquoi??

D’avance je vous remercie pour le temps que vous saurez consacrer à ma demande.

Bien à vous.

Claude
24-05-2012 16:32:28  Re: Question de constructeur #2
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1387
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Salut.

Il n'y a à mon avis pas de différence "cruciale" entre les deux formes.
Lorsque tu utilises la première forme, le constructeur de wxFrame appelle la méthode "Create" de cette dernière.
Lorsque tu utilises la deuxième forme, c'est toi qui l'appelle directement.

Et je dirais également qu'il n'y en a pas forcément une qui soit plus judicieuse que l'autre.

Je ne vois qu'un seul cas qui pourrait te "forcer" à utiliser la deuxième plutôt que la première : ça serait le fait d'avoir à faire quelques initialisations avant d'appeler la méthode Create (chose qui n'est pas possible avec la première forme car quand ton constructeur démarre, cette méthode a déjà été appelée).

Pour ma part, j'utilise la première forme la plupart du temps (mais c'est plus par habitude que par nécessité).

@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
24-05-2012 18:24:12  Re: Question de constructeur #3
Claude (Membre)
Inscrit le : 16-02-2011
Messages: 14
Snippets: 0
Tutoriels: 0
Hors ligne
Salut,

Un grand merci pour cette réponse claire, nette, précise et défiant toute concurrence quant à la rapidité d'exécution.. :super:

@++

Claude

Dernière modification par Claude (24-05-2012 18:25:35)

05-06-2012 12:01:36  Re: Question de constructeur #4
Warzer (Membre)
Inscrit le : 05-10-2007
Messages: 284
Snippets: 4
Tutoriels: 0
Hors ligne
Salut,

En faites, il y a une petite différence tout de même.
Elle sera plutôt minime dans un cas simple, c'est une question d'optimisation de ressources mémoire et processeur, ça se verra si tu fais 500.000 initialisation à la suite et dans ce cas la, la liste d'initialisation sera plus rapide et moins gourmande (c'est la 2eme forme dans ton example) si tu veux comprendre plus en détail, je te renvoie vers ce lien:

Mes constructeurs doivent-ils utiliser les listes d'initialisation ou l'affectation ?

Voilà à plus.

Dernière modification par Warzer (05-06-2012 12:02:51)

08-06-2012 12:52:28  Re: Question de constructeur #5
Claude (Membre)
Inscrit le : 16-02-2011
Messages: 14
Snippets: 0
Tutoriels: 0
Hors ligne
Salut,

Warzer:
Merci pour ce complément d'information et ce lien très intéressant.
Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Utilisation générale wxWidgets
» Question de constructeur