So bin ich ein wenig verwirrt, ich habe herum geschaut und versucht, einen passenden Weg zu finden, von std :: exception für meinen eigenen Typ zu erben. Nach cplusplus.com (und ich weiß, dass dies nicht unbedingt der Standard ist, deshalb frage ich), ist std :: exception eine Basisklasse ohne Mitglieder. Doch nach bei meiner Implementierung der Standardbibliothek (VS 2005) suchen, die Klasse std :: exception ganz klar mit zwei Membervariablen definiert:Vererbung von std :: exception, Mehrdeutigkeit in den Definitionen von std :: exception
class _CRTIMP_PURE exception
{ // base of all library exceptions
...
private:
const char *_m_what;
int _m_doFree;
};
Nun ist diese Norm dieser Elemente innerhalb der Basis aufgenommen haben Klasse std :: Ausnahme, mein Verständnis war, dass es nicht ist. Mein Grund für die Frage ist, dass meine abgeleitete Ausnahmeklasse wirklich nur eine einzige Zeichenfolge für ihre Informationen benötigt, daher würde diese Implementierung gut funktionieren. Ich bin jedoch besorgt, dass dies nicht standardgemäß ist, und als solche könnte ich besser von std :: exception erben und die entsprechenden Mitglieder + Kopie/Zuweisung Code selbst hinzufügen.
Da diese Mitglieder privat sind sie von Ihrer Version von vorgesehene Ausnahme nicht die Schnittstelle ändern. Die Interna von std :: exception sollten Sie nicht interessieren, nur seine öffentliche Schnittstelle ist von Bedeutung. –