Welcher Operator wird aufgerufen?



  • hi,

    Welcher Operator der Klasse Class wird bei solchen Konstrukten aufgerufen:

    Class c;
    if (c)
        {
        /*...*/
        }
    if (!c)
        {
        /*...*/
        }
    

    Danke! 👍



  • Das hängt davon ab, welche Operatoren die Klasse so anbietet. Hauptsache am Ende kommt bool raus, und es war nur maximal eine benutzerdefinierte Umwandlung im Spiel. Guck dir doch mal die Streamklassen an.



  • bis jetzt hat meine Klasse noch keine Operatoren definiert.
    Ich programmiere gerade eine file Klasse wobei ich das Prüfen, ob die Datei korrekt geöffnet wurde, gerne mittels dieser Konstrukte lösen. Ich hab nur leider keine Ahnung welchen Operator ich definieren muss. 😕



  • oben operator bool() und unten operator!().
    wenn du selber sowas bauen willst, mach struct GibtsNet{}; und operator GibtsNet*().



  • bluecode schrieb:

    bis jetzt hat meine Klasse noch keine Operatoren definiert.

    dann sollte der obige Code nicht compilieren.

    bluecode schrieb:

    Ich programmiere gerade eine file Klasse wobei ich das Prüfen, ob die Datei korrekt geöffnet wurde, gerne mittels dieser Konstrukte lösen. Ich hab nur leider keine Ahnung welchen Operator ich definieren muss. 😕

    Bei den IO-Klassen wird dazu ein

    operator void*() const
    {
        if( <alles ok> )
            return reinterpret_cast< void* >( this );
        return 0;
    }
    

    definiert. Damit funkt's.

    Gruß
    Werner


Anmelden zum Antworten