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

  FORUM HardWare.fr
  Programmation
  C++

  Constructeur par défaut

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Constructeur par défaut

n°2333813
Marco Paul​o
Posté le 22-05-2019 à 08:31:06  profilanswer
 

Bonjour
 
Je m'attaque au C++ dans le contexte suivant :  
J'ai déjà fait pas mal de C il y a longtemps, plein de Java, un peu de Python.
J'en suis pour l'instant aux tutoriels de base et pour la partie objet.
J'ai pris Visual Studio comme environnement de dev parce qu'il est relativement bien intégré pour développer dans le moteur Unreal.
 
La question :  
Le constructeur par défaut, sans paramètre est obligatoire.
On peut bien sur le surcharger avec un constructeur avec paramètre.
Mais du coup, ce constructeur sans paramètre est accessible et utilisable même pour un l'objet qui a absolument besoin de parametre d'entrée.
 
Les bonnes manières pour gérer ça, c'est quoi ?  
Remonter une exception si on appelle le constructeur sans paramètre ?
Mettre le constructeur sans paramètre en private ?
Autre ?

mood
Publicité
Posté le 22-05-2019 à 08:31:06  profilanswer
 

n°2333976
chef_keepe​r
Posté le 25-05-2019 à 12:20:45  profilanswer
 

Depuis C++ 11 tu peux utiliser le mot-clef : delete au constructeur par défaut que tu veux absolument pas implémenté voir : https://en.cppreference.com/w/cpp/l [...] onstructor
Avantt C++ 11 une astuce pour empêcher l'utilisation d'un constructeur par défaut était de le mettre en privé.
 
Le delete ayant l'avantage de donner une erreure de compil plus claire : "error: use of deleted function ‘A::A()’"

n°2333979
Marco Paul​o
Posté le 25-05-2019 à 23:58:18  profilanswer
 

chef_keeper a écrit :

Depuis C++ 11 tu peux utiliser le mot-clef : delete au constructeur par défaut que tu veux absolument pas implémenté voir : https://en.cppreference.com/w/cpp/l [...] onstructor
Avantt C++ 11 une astuce pour empêcher l'utilisation d'un constructeur par défaut était de le mettre en privé.
 
Le delete ayant l'avantage de donner une erreure de compil plus claire : "error: use of deleted function ‘A::A()’"


 
Un grand merci chef_keeper.  :jap:  
 
La clarté des messages d'erreur est un point étrange du c++ :D
 


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

  Constructeur par défaut

 

Sujets relatifs
creation d'un script pour deplacer les dossier par defaut! UP ! VBScript Changer une imprimante par défaut grâce à son IP
VBA: imprimer en couleur sur imprimante en N&B par défaut ?Augmenter la luminosité des image (par defaut ou overlay) sous Firefox
Par défaut C++ : appeler un .exe depuis le codeIncrémenter compteur après appel de constructeur JAVA
[C++] Questions sur "new" et les arguments d'un constructeurConstructeur par défaut d'un std::array
Template de template et constructeur par defautPassage d'arguments par défaut dans constructeur
Plus de sujets relatifs à : Constructeur par défaut


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR