Manchmal gibt es keinen Ausweg. Man muss eine
DoNothing()-Prozedur oder eine
IsTrue()-Funktion implementieren. Das war zumindest der erste Gedanke von
D.C., als er eine Klasse mit einer Variable namens "self" (selbst) sah...
class CERTlib
{
private:
CERTlib* self; // Zeiger auf sich selbst
...
}
Er dachte zuerst an ein seltsames Provisorium oder, noch schlimmer, einen irreführenden Namen für eine sinnvolle Variable. Als er dann im Konstruktor nachsah, war alles klar...
CERTlib::CERTlib(...)
{
// Speichere Zeiger auf sich selbst
selbst = this;
...
}
Das musste irgendein vergessenes Provisorium sein, dachte D.C., und durchsuchte den Code. Es stellte sich heraus, dass es noch an exakt einer Stelle verwendet wurde...
fnCERTlibDeinitialisierung( this->self );
(Übersetzt von
Andreas Moser)