Un constructeur appelle un autre constructeur de la même class...
spilz
Messages postés8Date d'inscriptionjeudi 21 avril 2005StatutMembreDernière intervention14 janvier 2010
-
4 juil. 2009 à 09:31
Mr Thanks -
22 avril 2016 à 11:04
Bonjour à tous,
je sais que plusieurs discutions portent sur le sujet, mais j'ai beau les lire, je n'arrive pas à comprendre comment faire ce que je veux :
voila le principe :
namespace Fichier_HEX
{
public class Poi
{
private double _latitude;
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 Modifié par NHenry le 22/04/2016 à 12:46
Tu as quoi comme message d'erreur ?
<b><i>---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 Modifié par NHenry le 22/04/2016 à 12:46
Ok j'avais zappé la dernière ligne de ton constructeur, c'est pour cela que ça marchait chez moi (et accessoirement que je ne comprennais pas le titre de ton post )
Tu n'as pas à rapeller le contructeur de ta classe, ta classe est déjà construite. Par contre, comme dans le premier constructeur, c'est la variable ionterne qui est à initialiser :
namespace Fichier_HEX
{
public class Poi
{
private double _latitude;
public Poi(double latitude) // mon constructeur "principal"
cs_Robert33
Messages postés834Date d'inscriptionsamedi 15 novembre 2008StatutMembreDernière intervention14 janvier 201733 4 juil. 2009 à 17:06
bonjour
Pour info, pour appeler un constucteur depuis un autre, il faut mettre l'appel en série:
ex:
public Poi(double deg, double min) : this (deg + min/60) {}
mais évidament dans ce cas cela rend le code complex pour rien, la solution proposée par casy reste la meilleure.
spilz
Messages postés8Date d'inscriptionjeudi 21 avril 2005StatutMembreDernière intervention14 janvier 2010 4 juil. 2009 à 19:48
en fait j'ai donné ici un exemple simple, en réalité le code de transformation est beaucoup plus complexe et long
il y a aussi plusieurs constructeurs en cascades pour tout paramettrer et je ne voullais pas recopier tout le code à chaque fois
si je comprends bien je ne vais pas avoir le choix, il faudra que je recopie à chaque fois le code?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 Modifié par NHenry le 22/04/2016 à 12:46
Le code n'a pas forcément besoin d'être dans le constructeur, il peut très bien être arrangé dans des procédures ou fonctions propres à ta classe qui seront appelées depuis les différents constructeurs
<b><i>---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #