私はC++ Builder XE7を使用しています。私はキーとしてUnicodeStringと値としてクラスを使用してマップを使用したいと思います。UnicodeStringを値としてクラスのキーとしてマップするC++ Builder
これが私のクラスである:Historique.h
#ifndef HistoriqueH
#define HistoriqueH
#include <System.Classes.hpp>
#include <string>
class MyHistorique
{
public:
__fastcall MyHistorique();
__fastcall MyHistorique(const MyHistorique& mh);
//Getters
String __fastcall getNumClient(){return numClient;}
bool __fastcall getTypeAppel(){return typeAppel;}
String __fastcall getCodeClient(){return codeClient;}
String __fastcall getDate(){return date;}
String __fastcall getHeure(){return heure;}
String __fastcall getNumCti(){return numCti;}
bool __fastcall getAppelRecuManque(){return appelRecuManque;}
String __fastcall getDebutConvers(){return debutConvers;}
String __fastcall getFinConvers(){return finConvers;}
String __fastcall getDureeConvers(){return dureeConvers;}
bool __fastcall getFlag(){return flag;}
//Setters
void __fastcall setNumClient(String nc){numClient = nc;}
void __fastcall setTypeAppel(bool ta){typeAppel = ta;}
void __fastcall setCodeClient(String cc){codeClient = cc;}
void __fastcall setDate(String d){date = d;}
void __fastcall setHeure(String h){heure = h;}
void __fastcall setNumCti(String nCti){numCti = nCti;}
void __fastcall setAppelRecuManque(bool arm){appelRecuManque = arm;}
void __fastcall setDebutConvers(String dc){debutConvers = dc;}
void __fastcall setFinConvers(String fc){finConvers = fc;}
void __fastcall setDureeConvers(String dureeC){dureeConvers = dureeC;}
void __fastcall setFlag(bool f){flag = f;}
private:
String numClient;
bool typeAppel;
String codeClient;
String date;
String heure;
String numCti;
bool appelRecuManque;
String debutConvers;
String finConvers;
String dureeConvers;
bool flag;
};
そして、私のApplication.h中:
#include <map>
#include "Historique.h"
class TForm1 : public TForm
{
public:
std::map<UnicodeString, MyHistorique> myMap;
};
そして、私のApplication.cpp中:私が欲しいもの
void __fastcall TForm1::XPhonePc1EvtIdCall(TObject *Sender, long nIdCall)
{
ShowMessage(nIdCall);
myMap[nIdCall] = new MyHistorique();
}
空のオブジェクトを作成し、それをnIdCall
に割り当てることですが、私はこのエラーがあります:
[bcc32 Erreur] ApplicationPhonePC.cpp(496): E2285 Impossible de trouver une correspondance pour 'operator MyHistorique::=(MyHistorique *)'
Contexte d'analyseur complet
ApplicationPhonePC.cpp(493): analyse : void _fastcall TForm1::XPhonePc1EvtIdCall(TObject *,long)
「long」値を使って作業しているときに、なぜ「UnicodeString」をキーとして使いたいのですか? –