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
Jean-Marc Bourguet
Don writes:
Bonjour,
D'après ce qu'on m'a dit, les codes suivants présentent certains risques lors de son utilisation :
class toto { public : toto(){ _titi = new unsigned char[1000]; } ~toto(){ delete [] _titi; }
private : unsigned char *_titi; }
où sont les risques?
Disponibilite du constructeur de copie et de l'affectation generee par le compilateur alors qu'ils ne font pas ce qu'il faut. Je suppose que la classe n'est pas concue pour etre copie d'une maniere ou d'une autre, mais dans ce cas, il vaut mieux desactiver la possibilite de faire cette operation en declarant un constructeur de copie et un operateur d'affectation prives et en ne les implementant pas.
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Don <don.h@free.fr> writes:
Bonjour,
D'après ce qu'on m'a dit, les codes suivants présentent certains risques
lors de son utilisation :
class toto {
public :
toto(){
_titi = new unsigned char[1000];
}
~toto(){
delete [] _titi;
}
private :
unsigned char *_titi;
}
où sont les risques?
Disponibilite du constructeur de copie et de l'affectation generee par
le compilateur alors qu'ils ne font pas ce qu'il faut. Je suppose que
la classe n'est pas concue pour etre copie d'une maniere ou d'une
autre, mais dans ce cas, il vaut mieux desactiver la possibilite de
faire cette operation en declarant un constructeur de copie et un
operateur d'affectation prives et en ne les implementant pas.
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
D'après ce qu'on m'a dit, les codes suivants présentent certains risques lors de son utilisation :
class toto { public : toto(){ _titi = new unsigned char[1000]; } ~toto(){ delete [] _titi; }
private : unsigned char *_titi; }
où sont les risques?
Disponibilite du constructeur de copie et de l'affectation generee par le compilateur alors qu'ils ne font pas ce qu'il faut. Je suppose que la classe n'est pas concue pour etre copie d'une maniere ou d'une autre, mais dans ce cas, il vaut mieux desactiver la possibilite de faire cette operation en declarant un constructeur de copie et un operateur d'affectation prives et en ne les implementant pas.
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
adebaene
Don wrote:
Bonjour,
D'après ce qu'on m'a dit, les codes suivants présentent certains risq ues lors de son utilisation :
class toto { public : toto(){ _titi = new unsigned char[1000]; } ~toto(){ delete [] _titi; }
private : unsigned char *_titi; }
où sont les risques?
A ton avis que se passe-t-il si tu fais çà (NB : plusieurs points sont à noter!) :
int main() { toto t1; { toto t2; t1=t2; } return 0; }
???
Arnaud
Don wrote:
Bonjour,
D'après ce qu'on m'a dit, les codes suivants présentent certains risq ues
lors de son utilisation :
class toto {
public :
toto(){
_titi = new unsigned char[1000];
}
~toto(){
delete [] _titi;
}
private :
unsigned char *_titi;
}
où sont les risques?
A ton avis que se passe-t-il si tu fais çà (NB : plusieurs points
sont à noter!) :
int main()
{
toto t1;
{
toto t2;
t1=t2;
}
return 0;
}