Guybrush Threepwood Geschrieben 25. November 2002 Geschrieben 25. November 2002 Hi, mal angenommen ich habe so eine Klasse: class Test { public: Test(char* text) { strcpy(var,text); } char* getvar() { return var; } private char var[100]; }; [/PHP] Dann kann ich die char Variable so ausgeben: [PHP] Test t("Hallo"); printf ("%s",t.getvar()); Ich möchte diese Variable aber so ausgeben: printf ("%s",t); [/PHP] Also dass wenn nur das Objekt angegeben ist er immer diese Variable nimmt, ist das irgendwie möglich? Gruß Guybrush Zitieren
Klotzkopp Geschrieben 25. November 2002 Geschrieben 25. November 2002 Du kannst für Deine Klasse einen Cast-Operator definieren: operator char const *() const { return var; }[/CODE] Dann wird, wann immer Du eine Instanz von Test an Stelle eines char const* oder char const * const angibst, var verwendet. Damit funktioniert z.B.: [CODE]printf( t ) Folgendes wird nicht funktionieren, weil die nachfolgenden Parameter bei printf keine Typprüfung haben: printf( "%s", t ); Die Möglichkeiten wären hier: printf("%s", static_cast<char const *>( t ) ); printf("%s", (char const *)t );[/code] Zitieren
Guybrush Threepwood Geschrieben 25. November 2002 Autor Geschrieben 25. November 2002 :eek: Ich dachte eigentlich das sowas nicht geht, werd zu Hause direkt mal ein bischen rumprobieren. Danke und :uli Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.