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 ...
Ma Classe Acteur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
ma fonction ^^
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3typedef CArray <acteur,acteur&> Mesacteurs; Mesacteurs listeact;
Et les erreurs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 } } }
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 ^^
Partager