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;
                             }