【发布时间】:2016-08-24 09:43:02
【问题描述】:
我正在使用 C++Builder XE7。我想使用带有 UnicodeString 作为键和类作为值的映射。
这是我的课: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 对应倒'operator MyHistorique::=(MyHistorique *)'
上下文分析完成
ApplicationPhonePC.cpp(493): 分析: void _fastcall TForm1::XPhonePc1EvtIdCall(TObject *,long)
【问题讨论】:
-
当您明确使用
long值时,为什么要使用UnicodeString作为键?
标签: c++ dictionary std c++builder stdmap