Veröffentlicht 25. November 200222 j 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
25. November 200222 j 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]
25. November 200222 j Autor :eek: Ich dachte eigentlich das sowas nicht geht, werd zu Hause direkt mal ein bischen rumprobieren. Danke und :uli
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.