non mon destructeur est vide... je ne le libère nulle part.
et puis, c'est vraiment lors de cette affectation que ca plante (m_strName = e.m_strName; ), si j'en crois mon debbuger...
De plus, si j'enlève le pointeur m_strValidation (qui ne me sert pas dans l'immédiat), j'ai toujours le même soucis :
Param.h
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
class CParam
{
public:
CParam();
CParam(CString Name,CString Value);
virtual ~CParam();
// Redéfinition de l'opérateur d'affectation
CParam & operator=(const CParam & e);
public:
CString m_strValue;
CString m_strName;
}; |
Param.cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
CParam::CParam()
{
m_strName = "Name";
m_strValue="Value";
}
CParam::CParam(CString Name,CString Value)
{
m_strName = Name;
m_strValue=Value;
}
CParam::~CParam()
{
}
// Définition de l'opérateur d'affectation
CParam & CParam::operator=(const CParam & e)
{
m_strName = e.m_strName;
m_strValue = e.m_strValue;
return *this;
} |
De plus, Farscape, si j'ajoute ce que tu me recommande :
if(this==&e) return *this;
j'ai l'erreur en compil qui me dit qu'il est poussible que la fonction ne retourne rien. et je ne sais pas quoi mettre dans le else...
Partager