Probleme suppression d'un objet d'une collection
Bonsoir a tous;
Voilà mon problemme concerne la suppression d'un objet dans une collection, d'apres MSDN il "suffit" juste d'utiliser l'operateur " delete ", mais apparement le "suffit" d'MSDN ne me suffit pas :D ...
Ma Classe Acteur:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
class acteur :public Personne {
DECLARE_SERIAL(acteur)
private:
int C_nbapparition;
double C_cachet;
public:
acteur();
acteur(const acteur &act){
C_ID=act.C_ID;
C_nom=act.C_nom;
C_prenom=act.C_prenom;
C_ville=act.C_ville;
C_cachet=act.C_cachet;
C_nbapparition=act.C_nbapparition;
}
int get_nbapparition();
double get_cachet();
void set_nbapparition(int nbapp);
void set_cachet(double cachet);
void init_acteur(int ID, CString prenom, CString nom,CString ville,int nbapparition,double cachet);
void serialize(CArchive &ar);
acteur& operator=( const acteur &act){
C_ID=act.C_ID;
C_nom=act.C_nom;
C_prenom=act.C_prenom;
C_ville=act.C_ville;
C_cachet=act.C_cachet;
C_nbapparition=act.C_nbapparition;
return *this;
}
void afficher(){
cout << "numero de l'acteur : "<< C_ID << endl;
printf("Nom de l'acteur : %s\n",C_nom);
printf("Prenom de l'acteur %s\n",C_prenom);
cout <<"Cachet de l'acteur : "<< get_cachet() << endl;
}
void operator delete ( void *act){
free(act);
}
}; |
Ma collection
Code:
1 2 3
|
typedef CArray <acteur,acteur&> Mesacteurs;
Mesacteurs listeact; |
ma fonction ^^
Code:
1 2 3 4 5 6 7 8
|
void supprimer(CString nom){
for (int i=0;i<listeact.GetSize();i++){
if (nom==listeact.GetAt(i).get_nom()){
delete listeact.GetAt(i); // l'erreur se trouve ici
}
}
} |
Et les erreurs :
D:\Mes documents\codage C++\Collection_serialisation_c++\PTIcorrige\PTI.cpp(125) : error C2440: 'delete' : cannot convert from 'class acteur' to ''
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
Merci d'avance et bonne soirée ^^