Bonjour
Est ce que vous savez s'il y a moyen d'utiliser un constructeur autre que
celui par défaut en ayant fait de l'allocation dynamique sur un objet ?
Merci
Jarod
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Serge Paccalin
Le mardi 31 mai 2005 à 10:54, Jarod a écrit dans fr.comp.lang.c++ :
Est ce que vous savez s'il y a moyen d'utiliser un constructeur autre que celui par défaut en ayant fait de l'allocation dynamique sur un objet ?
Pour un objet seul, oui :
class Point { public: Point() : x(0), y(0) {} // ctr par défaut Point(int a,int b) : x(a),y(b) {} // autre ctr
private: int x,y; };
...
Point *p = new Point(42,-5); // appelle autre ctr
...
delete p;
En revanche, pour un tableau...
Point *p2 = new Point[10]; // 10 x ctr par défaut
...
delete [] p2;
-- ___________ 31/05/2005 12:32:45 _/ _ _`_`_`_) Serge PACCALIN -- sp ad mailclub.net _L_) Il faut donc que les hommes commencent -'(__) par n'être pas fanatiques pour mériter _/___(_) la tolérance. -- Voltaire, 1763
Le mardi 31 mai 2005 à 10:54, Jarod a écrit dans fr.comp.lang.c++ :
Est ce que vous savez s'il y a moyen d'utiliser un constructeur autre que
celui par défaut en ayant fait de l'allocation dynamique sur un objet ?
Pour un objet seul, oui :
class Point
{
public:
Point() : x(0), y(0) {} // ctr par défaut
Point(int a,int b) : x(a),y(b) {} // autre ctr
private:
int x,y;
};
...
Point *p = new Point(42,-5); // appelle autre ctr
...
delete p;
En revanche, pour un tableau...
Point *p2 = new Point[10]; // 10 x ctr par défaut
...
delete [] p2;
--
___________ 31/05/2005 12:32:45
_/ _ _`_`_`_) Serge PACCALIN -- sp ad mailclub.net
_L_) Il faut donc que les hommes commencent
-'(__) par n'être pas fanatiques pour mériter
_/___(_) la tolérance. -- Voltaire, 1763
Le mardi 31 mai 2005 à 10:54, Jarod a écrit dans fr.comp.lang.c++ :
Est ce que vous savez s'il y a moyen d'utiliser un constructeur autre que celui par défaut en ayant fait de l'allocation dynamique sur un objet ?
Pour un objet seul, oui :
class Point { public: Point() : x(0), y(0) {} // ctr par défaut Point(int a,int b) : x(a),y(b) {} // autre ctr
private: int x,y; };
...
Point *p = new Point(42,-5); // appelle autre ctr
...
delete p;
En revanche, pour un tableau...
Point *p2 = new Point[10]; // 10 x ctr par défaut
...
delete [] p2;
-- ___________ 31/05/2005 12:32:45 _/ _ _`_`_`_) Serge PACCALIN -- sp ad mailclub.net _L_) Il faut donc que les hommes commencent -'(__) par n'être pas fanatiques pour mériter _/___(_) la tolérance. -- Voltaire, 1763
Dans ce cas précis, oui. Mais je crois que l'intention (d'après les noms) était de pouvoir en générer des valeurs différentes. Si Usine_A_Point est un objet fonctionnel, par exemple, il pourrait incrément des valeurs à chaque fois.
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Sylvain Togni wrote:
Pierre THIERRY wrote:
Et si l'on veut faire appel à un autre constucteur que celui
par défaut, mais toujours le même, on a std::generate.
class Usine_A_Point
{
private:
int m_x, m_y;
public:
Usine_A_Point(int x, int y) : m_x(x), m_y(y) {}
Point operator ()() { return Point(m_x, m_y); }
};
Dans ce cas précis, oui. Mais je crois que l'intention (d'après
les noms) était de pouvoir en générer des valeurs
différentes. Si Usine_A_Point est un objet fonctionnel, par
exemple, il pourrait incrément des valeurs à chaque fois.
--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Dans ce cas précis, oui. Mais je crois que l'intention (d'après les noms) était de pouvoir en générer des valeurs différentes. Si Usine_A_Point est un objet fonctionnel, par exemple, il pourrait incrément des valeurs à chaque fois.
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Pierre THIERRY
Le Tue, 31 May 2005 09:56:26 -0700, kanze a écrit :