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
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]
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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden