C++ les classes les constructeurs appelés
wawa
-
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour tout le monde!!!
Comme je pense que vous l'avez compris dans le titre je fais une classe et je ne comprend pas des fois pourquoi le constructeur est appelé... JE NE LUI AI RIEN DEMANDE!!!
Par exemple dans la fonction qui suit, le destructeur est appelé deux fois:
class Signal {
public:
int mLongueur;
short *mSignal;
Signal operator= (Signal S1){
int i;
mLongueur=S1.mLongueur;
mSignal=new short[S1.mLongueur];
for (i=0;i<S1.mLongueur;i++){
mSignal[i]=S1.mSignal[i];}
cout<<"opertaur=utilise"<<endl;
}
int main(int argc, char *argv[])
{
......
rr=g;}
ici rr et gg sont deux objet de la classe signal
Comme je pense que vous l'avez compris dans le titre je fais une classe et je ne comprend pas des fois pourquoi le constructeur est appelé... JE NE LUI AI RIEN DEMANDE!!!
Par exemple dans la fonction qui suit, le destructeur est appelé deux fois:
class Signal {
public:
int mLongueur;
short *mSignal;
Signal operator= (Signal S1){
int i;
mLongueur=S1.mLongueur;
mSignal=new short[S1.mLongueur];
for (i=0;i<S1.mLongueur;i++){
mSignal[i]=S1.mSignal[i];}
cout<<"opertaur=utilise"<<endl;
}
int main(int argc, char *argv[])
{
......
rr=g;}
ici rr et gg sont deux objet de la classe signal
A voir également:
- C++ les classes les constructeurs appelés
- Classer les applications par ordre alphabétique iphone - Guide
- Family link autoriser les appels - Forum Téléphones & tablettes Android
- Comment effacer les appels sur téléphone fixe alcatel f860 ✓ - Forum telephonie fixe
- Comment supprimer les appels sur messenger - Forum Mobile
- Une personne non-voyante utilise un logiciel qui lit les textes et décrit les images. sans utiliser de logiciel spécifique, trouvez, dans le document, comment s’appelle le chien de la photo. - Forum Handicap / Accessibilté
1 réponse
lorsque tu fait un appel à "Signal operator= (Signal S1)" tu fait une copie de ta variable 'g', c'est comme si tu écrivait :
Signal S1(g)
tu utilise le constructeur de copie par défaut. Je te conseil plutôt de faire :
Signal operator= (Signal& S1)
ou même mieux dans ton cas :
Signal operator= (const Signal& S1)
En faisant un passage par référence tu évite la création et la copie d'un nouvel objet.
Signal S1(g)
tu utilise le constructeur de copie par défaut. Je te conseil plutôt de faire :
Signal operator= (Signal& S1)
ou même mieux dans ton cas :
Signal operator= (const Signal& S1)
En faisant un passage par référence tu évite la création et la copie d'un nouvel objet.