Se volessi implementare la mia versione di std :: exception senza una buona ragione, ci sono delle cose particolari sull'implementazione di questo tipo di oggetto di cui dovrei essere a conoscenza? Sembra una cosa abbastanza semplice che è principalmente un wrapper di stringhe ...
Ecco la mia implementazione fino ad ora:
#pragma once;
#include <string>
class MyException
{
public:
MyException(const std::wstring&);
virtual ~MyException(){}
virtual MyException& operator=(const MyException& rhs);
virtual const std::wstring& what(){return msg;};
private:
std::wstring msg;
};
MyException::MyException(const std::wstring& message)
:msg(message)
{
}
MyException& MyException::operator=(const MyException& rhs)
{
if(this == &rhs)
{
return *this;
}
msg = rhs.msg;
return *this;
}