Zugriff auf Membername innerhalb Memberdeklaration?
-
Darf man so etwas machen:
#include <cstddef> class test1 { public: class test1_test2 { public: int val; int test (void) { return (reinterpret_cast <test1*> (this - offsetof (test1, t1t2var))->t1t2var.val); } } t1t2var; };
In Borland C++ kann man es kompilieren und auch benutzen, wenn man aber in einer umfangreicheren Klassenimplementation davon Gebrauch gemacht, kommt in BCC nur Unsinn heraus (falsche Werte von val). In g++ ist es auch kompilierbar, und auch die komplexere Klasse liefert dort die richtigen Ergebnisse, doch erzeugt der Compiler Warnungen (was BCC nicht tut).
/EDIT: sorry, vertippt
Moritz
-
versuchs mal mit this->
-
burnner schrieb:
versuchs mal mit this->
Mir ging es um das Prinzip, und um es nicht unnötig kompliziert zu machen, habe ich dieses (sinnfreie) Beispiel verwendet. Wenn du wissen willst, wofür man das braucht: http://www.codeproject.com/cpp/genericproperty.asp
/EDIT: auch hier den lokalen Pfad in eine Webadresse umgewandelt (peinlich, peinlich)
Moritz
-
na du bist ja clever... einen lokalen pfad posten...
-
Lars Hupel schrieb:
na du bist ja clever... einen lokalen pfad posten...
Ooh, das hab ich in der Browser-History noch gefunden und nicht gemerkt...
Die Seite heißt natürlich http://www.codeproject.com/cpp/genericproperty.asp
-
darf man nicht.