Salve venendo dal java ed approcciandomi a C++, volevo sapere come mai non riesco a definire una mappa di oggetti.
Inserisco questo codice, ma mi da errori
codice:
#include <map>
#include <algorithm>
#include <iostream>
#include <string>
#include "amico.h"
int main(){
amico amic ("marco","rossi"); //definisco l'oggetto amic di tipo amico
map<string,amico*> amap; //creo la mappa amap
amap.insert(std::pair<string, amico>("Primo", amic));
oppure ----> (ma mi da errore lo stesso) amap["Primo"]=amic;
cout << "Size: " << amap.size() << endl;
system("pause");
return 0;
}
--------------------------------------
//questo invece è il file amico.cpp
--------------------------------------
#include "StdAfx.h"
#include<iostream>
#include<cstring>
#include<cassert>
using namespace std;
#include "amico.h"
amico::amico( char *first, char *second)
{
nome= new char[ strlen(first) + 1];
assert ( nome != 0); //termina se non è allocato
strcpy( nome, first);
cognome=new char[ strlen(second)+1];
assert( cognome !=0); //termina se non è allocato
strcpy(cognome,second);
}
void amico::print()
{
cout << nome << " " << cognome;
}
amico::~amico(){
delete [] nome;
delete [] cognome;
}