Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1616 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Point de syntaxe C++ pour un noob siouplait

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Point de syntaxe C++ pour un noob siouplait

n°2280541
Marco Paul​o
Posté le 02-05-2016 à 09:09:36  profilanswer
 

Bonjour

 

Je découvre le c++, je lis des tutoriaux, mais pour l'instant, je bloque sur cette syntaxe. Elle doit être expliquée dans des tutoriaux de plus haut niveau que ceux que j'ai lu jusque là.

 

Donc, c'est peut être obvious de chez obvious, mais vous me feriez gagner du temps, à vot bon coeurs m'sieur dame, pour une vieux programmeur nécessiteux de la tête  :jap:

 

Cellule::Cellule(const FObjectInitializer& ObjectInitializer)
:Super(ObjectInitializer)
{
    Cloison = NewObject<AClosion>();
}

 

Le :Super(ObjectInitializer) veux dire qu'on me passe un objet et que son constructeur va être appelé automatiquement ?

 

Ou autre complètement autre chose ?

 

Ca me semble louche de recevoir une pointeur sur un objet qui ne serait pas déjà passé par la case constructeur.


Message édité par Marco Paulo le 02-05-2016 à 09:10:27
mood
Publicité
Posté le 02-05-2016 à 09:09:36  profilanswer
 

n°2280577
theshockwa​ve
I work at a firm named Koslow
Posté le 02-05-2016 à 14:16:21  profilanswer
 

C'est la syntaxe pour appeler le constructeur de ta classe parent

Code :
  1. class A
  2. {
  3. public:
  4.   A() : value( 0 ) {}
  5.   A(int i) : value( i ) {}
  6.   int value;
  7. };
  8. class B : public A
  9. {
  10.   B() {} // appelle le constructeur par défault de A, donc A::A()
  11.   B( int i ) : A( i ) {} // on appelle explicitement le constructeur de A qui convient
  12. };



---------------
last.fm
n°2280591
Marco Paul​o
Posté le 02-05-2016 à 15:42:57  profilanswer
 

C'est une forme de déclaration pour être sur de ne pas oublier d'appeler le constructeur parent ?
Parce qu'on aurait pu le faire dans le corps du constructeur de B, j'imagine.

 

Merci de ta réponse. :jap:

Message cité 1 fois
Message édité par Marco Paulo le 02-05-2016 à 15:44:42
n°2280595
theshockwa​ve
I work at a firm named Koslow
Posté le 02-05-2016 à 16:07:03  profilanswer
 

Marco Paulo a écrit :

C'est une forme de déclaration pour être sur de ne pas oublier d'appeler le constructeur parent ?  
Parce qu'on aurait pu le faire dans le corps du constructeur de B, j'imagine.
 
Merci de ta réponse. :jap:  


 
Non.
1/ on ne peut pas "oublier" d'appeler le constructeur parent (dans mon exemple, le premier constructeur de B appelle bien le constructeur de A)
2/ on n'aurait pas pu le faire dans le corps de B. L'ordre de construction des classes et de leurs members est strictement défini. Quand tu entres dans le corps du constructeur de B, tu as la garantie que toutes les classes dont tu dérives sont initialisées et que les constructeurs par défaut de tes membres ont été appelés (avec un cas particulier pour les types primitifs comme int, float et autres, qui ne sont pas initialisés par défaut)


---------------
last.fm
n°2280604
Marco Paul​o
Posté le 02-05-2016 à 16:48:09  profilanswer
 

theshockwave a écrit :

 

Non.
1/ on ne peut pas "oublier" d'appeler le constructeur parent (dans mon exemple, le premier constructeur de B appelle bien le constructeur de A)
2/ on n'aurait pas pu le faire dans le corps de B. L'ordre de construction des classes et de leurs members est strictement défini. Quand tu entres dans le corps du constructeur de B, tu as la garantie que toutes les classes dont tu dérives sont initialisées et que les constructeurs par défaut de tes membres ont été appelés (avec un cas particulier pour les types primitifs comme int, float et autres, qui ne sont pas initialisés par défaut)

 

Woki, merci, c'est précieux comme information. Je ne l'avais pas lu jusque là, ça clarifie pas mal de points :jap:

 

Big thank


Message édité par Marco Paulo le 02-05-2016 à 16:49:29

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Point de syntaxe C++ pour un noob siouplait

 

Sujets relatifs
raw socket - CPYTHON MYSQL C'est pourtant simple mais...
C Racine communeC : Envoi et retour d'un tableau dans des fonctions.
[C#]Problème de droit d'accès, Outil de rechercheLes meilleurs livres pour un novice total en C++ ?
LANGAGE C : MAC FLOODINGTraduction d'un programme C en python
Où, comment et sur quel OS apprendre le C++ ? 
Plus de sujets relatifs à : Point de syntaxe C++ pour un noob siouplait



Copyright © 1997-2016 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR