Klsse, Operator überladen...



  • Hallo!

    Ich habe eine eigen Klasse die Datensätze verwaltet. Ist es möglich einen Operator so zu überladen dass an NurEineFuktion z übergeben wird?

    class MEINEKLASSE
        {
            private:
                char* z;
    	    // [...]
        }
    
        int NurEineFuktion(char* y) { return(0); }
    
        int main(void)
        {
            MEINEKLASSE x;
            NurEineFuktion(x);
        }
    

    Ich hätte vorgehbt den = Operator zu überladen aber das macht ja nur sinn wenn meiner Klasse ein Wert zugewiesen wird oder?



  • operator char*() ?

    Keine Gewähr 😉



  • Danke!

    Man kann ja wirklich casts einfach überladen... hab ich bis jetzt immer überlesen...

    nochal danke!

    hier die Lösug falls es jemand brauchen kann:

    class MEINEKLASSE
        {
            private:
                char* z;
            // [...]
    
            public:
                operator char*(void)
                {
                    return(z);
                }
        }
    
        int NurEineFuktion(char* y) { return(0); }
    
        int main(void)
        {
            MEINEKLASSE x;
            NurEineFuktion(x);
        }
    


  • BTW: Lieber const char* überladen, sonst kommt jemand auf solche Ideen:

    {
        MEINEKLASSE x;
        char* y = x;
    
        delete y;
    }// BUM
    

    MfG SideWinder



  • SideWinder schrieb:

    BTW: Lieber const char* überladen, sonst kommt jemand auf solche Ideen:

    {
        MEINEKLASSE x;
        char* y = x;
    
        delete y;
    }// BUM
    

    Nicht dass ich dir in Sachen const nicht zustimmen würde, aber wie schaut's denn mit folgender Idee aus?

    {
        MEINEKLASSE x;
        // char* y = x;
        const char* y = x;
    
        delete y;
    }// BUM
    

Anmelden zum Antworten