ho un nuovo problema su questa classe. non riesco a invocare il distruttore:
codice:
#include <iostream>
#include <string>
using namespace std;
class Persona
{
public:
Persona(){}
Persona(string cognome, string nome, int id) : Cognome(cognome), Nome(nome), Id(id)
{
cout << "Nuova persona creata: " << Cognome << ", "
<< Nome << ", ID=" << Id << endl;
}
~Persona()
{
cout << " persona distrutta: " << Cognome << ", "
<< Nome << ", ID=" << Id << endl;
}
string Nome;
string Cognome;
int Id;
};
int i = 0;
int MAX = 0;
Persona Persone[80];
void Crea()
{
string nome, cognome;
cout << "Cognome: ";
cin >> cognome;
cout << "Nome: ";
cin >> nome;
Persone[i++] = Persona(cognome, nome, i);
MAX++;
}
void Distruggi()
{
cout << "ID da distruggere: ";
int id;
for (int j = 0; j <= 10; j++)
if (Persone[j].Id==id);
Persone[j]=NULL;
}
void Mostra()
{
cout << "ID\t\tCognome\t\tNome\n";
for (int j = 0; j < MAX; j++)
//if (Persone[j]!=NULL)
cout << Persone[j].Id << "\t\t" << Persone[j].Cognome <<
"\t\t" << Persone[j].Nome << endl;
}
void Esci()
{
exit(0);
}
int main(int argc, char* argv[])
{
char scelta;
while (1)
{
cout << "1)Crea\n2)Distruggi\n3)Mostra\n4)Esci\n";
cin >> scelta;
switch (scelta)
{
case '1': Crea(); break;
case '2': Distruggi(); break;
case '3': Mostra(); break;
case '4': Esci(); break;
}
}
return 0;
}
//---------------------------------------------------------------------------
Quando faccio Persone[j]=NULL mi dice
[C++ Error] Unit1.cpp(48): E2285 Could not find a match for 'Persona:
perator =(int)'
perchè??