(gelöst) C++ Const Methoden Problem ..



  • Hallo Zusammen,

    irgendwie stehe ich mit Const auf dem Kriegfuss.

    Ich habe folgende Methode deklariert und definiert:

    class ...
    {
    	UserInfo	*getUserInfo( void ) const;
    
        private:
            UserInfo        UserData;
    }
    
    UserInfo		*class::getUserInfo(void) const
    {
    	return		&UserData;
    }
    

    Hier bei bekomme ich den Fehler:

    error: invalid conversion from 'const UserInfo*' to 'UserInfo*'

    Ich will ja eigentlich nur eine Referenz auf das Objekt nach Aussen geben.

    Gruss



  • Dann nimm:

    const UserInfo& class::getUserInfo(void) const
    

    Edit:
    Das class ist nur ein Abtippfehler, oder?



  • Ja,

    das class habe ich nur als Platzhalter für den eigentlichen Namen genommen.

    Werde das direkt ausprobieren ...

    Gruss



  • Hi,

    das gibt den Fehler

    error: invalid initialization of reference of type 'const UserInfo&' from expression of type 'const UserIn

    [cpp]
    const UserInfo& <KlassenName>::getUserInfo( void ) const
    {
    return &UserData; <------ Hier
    }

    Gruss



  • Schau dir mal im Buch/Tutorial deiner Wahl das Kapitel zu Referenzen an. Da muss man keinen Adressoperator nehmen.



  • Hi,

    hatte vorher auch * da stehen.

    Jetzt nimmt der Compiler es ...

    Gruss


Log in to reply