Friend will einfach nicht funktionieren ??



  • Hallo,
    hab en kleines Programm was 2 komplexe Zahlen addieren soll. Dabei ist der + Operator überladen und ist bewusst als friend deklariert (Aufgabenstellung).
    Der Compiler beschwert sich immer die Operator Funktion dürfe nicht auf die privaten Variablen zugreifen obwohl ich diese als Friend deklariert habe. Hat jemand ne Idee ?

    Hier der Code:

    #include <stdio.h>
    #include <malloc.h>
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    class complexT{
    private:
    
    	float re, im;
    public:
    	friend complexT operator +(complexT in1, complexT in2);
    	complexT(void){re=im=0.0;};
    	complexT(float re_in){re=re_in; im=0.0;};
    	complexT(float re_in, float im_in){re=re_in; im=im_in;};
    
    	~complexT(){};
    
    	void ausgabe();
    
    };
    
    complexT operator+(complexT in1, complexT in2){
    	return complexT(in1.re+in2.re,in1.im+in2.im);
    }
    
    void complexT::ausgabe(){
    	cout<<re<<endl;
    	cout<<im<<endl;
    }
    
    int main(void){
    
    complexT objekt1(2.0,3.7);
    complexT objekt2(5.0,4.2);
    
    complexT objekt3;
    
    objekt3=objekt1+objekt2;
    objekt3.ausgabe();
    
    return 0;
    }
    


  • In VC++ .NET 2003 gehts bei mir dein source
    sry kan dir nicht helfen

    mfg



  • Ne oder ???

    Unter Visual c++ 6.0 bekomm ich die Fehler...! Das gibts doch nicht !? 😞

    Und nu ? 😕



  • mit vc++ 6.0 funktioniert's auch...



  • 😕 😕 😕
    Na toll....! Jetzt weiss ich gar nicht mehr was ich machen soll. Kann mir net einfach ma schnell en neuen Compiler kaufen.



  • Hallo,

    du wirst doch wohl nicht Visual c++ 6.0 ohne jegliches installiertes Servicepack dazu benutzen? Dann darfst du dich über solche Fehler nicht wundern :).

    Also am besten sofort das aktuellste SP, das ist momentan Nummer 6:

    http://support.microsoft.com/default.aspx?scid=kb;de;834001

    Für deinen Fall hätte schon Servicepack 3 ausgereicht, so lange ist der Fehler schon behoben:

    http://support.microsoft.com/kb/q192539/

    Aber klar, das muß man erst einmal wissen. Ich konnte es auch kaum glauben, als ich diese Fehlermeldung zum ersten Mal sah, nachdem mich ein Azubi gefragt hat, was er denn da falsch gemacht hatte, natürlich nichts, außer..., und das war das einzige, was mir eingefallen war, Servicepack...

    Aber jetzt ist alles klar, denke ich.

    MfG



  • wollte eigentlich noch den Link zu SP6 angeben 🙂 :

    http://msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/default.aspx

    MfG



  • Schnuggels schrieb:

    😕 😕 😕
    Na toll....! Jetzt weiss ich gar nicht mehr was ich machen soll. Kann mir net einfach ma schnell en neuen Compiler kaufen.

    Wieso kaufen? 😕 Version 7.1 des Microsoft Compilers gibts doch gratis, genauso wie Version 8 (in VC++ 2005 Express).


Log in to reply