Wieso funktioniert das nicht?.



  • class CLIEDAT
    {
    
    public:
    	//operaor <<
    	friend ostream &operator<<(ostream &output, const CLIEDAT &rhs);
    
    	//operator>>
    	friend istream &operator>>(istream &Input, CLIEDAT &r);
    
    	//operator>>
    	friend ifstream &operator>>(ifstream &File, CLIEDAT &r);
    
    	//operator<<
    	friend ofstream &operator<<(ofstream &File, CLIEDAT &r);
    
    	//Construktor
    	CLIEDAT(void):itsATNumber(NULL),itsFirstName(NULL),itsLastName(NULL),itsStreet(NULL),itsStreetNumber(NULL),itsZipCode(0){}
    
    	//Destruktor
    	~CLIEDAT(void);
    
    	//operator =
    	const CLIEDAT operator=(const CLIEDAT &Right);
    
    	//Kani CleanUp
    	void CleanUp(void);
    
    	//Epistrefh thn dieu8insh tou ATNumber
    	char *GetAddrATNumber(void);
    
    	//Epistrefh thn dieu8insh tou FirstName
    	char *GetAddrFirstName(void);
    
    	//Epistrefh tin dieu8insh tou LastName
    	char *GetAddrLastName(void);
    
    	//Epistrefh tin dieu8insh tpou onomatos tou dromou
    	char *GetAddrStreet(void);
    
    	//Epistrefh andigrafh tou ATNumber
    	char *GetATNumber(void);
    
    	//Epistrefh andigrafh FirstName
    	char *GetFirstName(void);
    
    	//Epistrefh andigrafh lastname
    	char *GetLastName(void);
    
    	//Epistrefh andigrafi tou Status
    	bool GetStatus(void);
    
    	//Epistrefh andigrafh tou dromou
    	char *GetStreet(void);
    
    	//Epistrefh antigrafi tou noumero tou dromou
    	long int GetStreetNumber(void);
    
    	//Epistrefh to noumero taxidromou
    	long int GetZipCode(void);
    
    protected:
    
    	//GeneralSet
    	void SetGeneral(char *NewATNumber, char *NewFirstName, char *NewLsatname, char *NewStreet, long int NewStreetNumber, long int ZipCode, bool NewStatus);
    
    	//Bazi timi sto ATNumber
    	void SetATNumber(char *NewATNumber);
    
    	//Dini timi sto FirstName
    	void SetFirstName(char *NewFirstName);
    
    	//Dinh timi sto Last Name
    	void SetLastName(char *NewLastName);
    
    	//Dinh timh ston dromo mas
    	void SetStreet(char *NewStreet);
    
    	//Dinh timh sto ZipCode
    	void SetZipCode(long int NewZipCode);
    
    	//Dinh timoi sto status 
    	void SetStatus(bool NewStatus);
    
    private:
    	char *itsATNumber;
    	char *itsFirstName;
    	char *itsLastName;
    	char *itsStreet;
    	long int itsStreetNumber;
    	long int itsZipCode;
    	mutable bool itsStatus;
    };
    
    //////////////////////////////////////////////////////////////////////
    //																	//
    //	Eisodos	:	Ostream kai ena CLIEDAT.							//
    //																	//
    //	Exodos	:	To ostream.											//
    //																	//
    //	Skopos	:	Enas operator<<.									//
    //																	//
    //	Xronos	:	O(8n + 2).											//
    //																	//
    //////////////////////////////////////////////////////////////////////
    
    ostream &operator<<(ostream &output, const CLIEDAT &Rhs)
    {
    	//Dhlosh Metablhton
    //
    		//Kurio Programma
    	output << "ATNumber: " << Rhs.itsATNumber << "FirstName: " << Rhs.itsFirstName << "LastName: " << Rhs.itsLastName << "Street: " << Rhs.itsStreet << Rhs.itsStreetNumber << "ZipCode: " << Rhs.itsZipCode << endl;
    	return output;
    }
    

    Die Fehler in MS VC 6.0.
    .
    .
    .
    error C2248: 'itsZipCode' : cannot access protected member declared in class 'CLIEDAT'

    cliend.hpp(160) : see declaration of 'itsZipCode'
    .
    .
    .

    Für alle variablen. Das kommische ist daran das es vor 3 monaten in einer vergleichbaren class so funktionierte was mache ich falsch?.

    Scheiß C++.
    Scheiß C.
    😡 😡 😡



  • weil das visual studio das nicht auflösen kann.. ist ein problem des studio 6.

    so gehts:

    #include <iostream>
    
    class CLIEDAT
    {
    
    public:
        //operaor <<
        friend std::ostream &operator<<(std::ostream &output, const CLIEDAT &rhs);
    
        //operator>>
        friend std::istream &operator>>(std::istream &Input, CLIEDAT &r);
    
        //operator>>
        friend std::ifstream &operator>>(std::ifstream &File, CLIEDAT &r);
    
        //operator<<
        friend std::ofstream &operator<<(std::ofstream &File, CLIEDAT &r);
    
        //Construktor
        CLIEDAT(void):itsATNumber(NULL),itsFirstName(NULL),itsLastName(NULL),itsStreet(NULL),itsStreetNumber(NULL),itsZipCode(0){}
    
        //Destruktor
        ~CLIEDAT(void);
    
        //operator =
        const CLIEDAT operator=(const CLIEDAT &Right);
    
        //Kani CleanUp
        void CleanUp(void);
    
        //Epistrefh thn dieu8insh tou ATNumber
        char *GetAddrATNumber(void);
    
        //Epistrefh thn dieu8insh tou FirstName
        char *GetAddrFirstName(void);
    
        //Epistrefh tin dieu8insh tou LastName
        char *GetAddrLastName(void);
    
        //Epistrefh tin dieu8insh tpou onomatos tou dromou
        char *GetAddrStreet(void);
    
        //Epistrefh andigrafh tou ATNumber
        char *GetATNumber(void);
    
        //Epistrefh andigrafh FirstName
        char *GetFirstName(void);
    
        //Epistrefh andigrafh lastname
        char *GetLastName(void);
    
        //Epistrefh andigrafi tou Status
        bool GetStatus(void);
    
        //Epistrefh andigrafh tou dromou
        char *GetStreet(void);
    
        //Epistrefh antigrafi tou noumero tou dromou
        long int GetStreetNumber(void);
    
        //Epistrefh to noumero taxidromou
        long int GetZipCode(void);
    
    protected:
    
        //GeneralSet
        void SetGeneral(char *NewATNumber, char *NewFirstName, char *NewLsatname, char *NewStreet, long int NewStreetNumber, long int ZipCode, bool NewStatus);
    
        //Bazi timi sto ATNumber
        void SetATNumber(char *NewATNumber);
    
        //Dini timi sto FirstName
        void SetFirstName(char *NewFirstName);
    
        //Dinh timi sto Last Name
        void SetLastName(char *NewLastName);
    
        //Dinh timh ston dromo mas
        void SetStreet(char *NewStreet);
    
        //Dinh timh sto ZipCode
        void SetZipCode(long int NewZipCode);
    
        //Dinh timoi sto status
        void SetStatus(bool NewStatus);
    
    private:
        char *itsATNumber;
        char *itsFirstName;
        char *itsLastName;
        char *itsStreet;
        long int itsStreetNumber;
        long int itsZipCode;
        mutable bool itsStatus;
    };
    
    //////////////////////////////////////////////////////////////////////
    //                                                                    //
    //    Eisodos    :    Ostream kai ena CLIEDAT.                            //
    //                                                                    //
    //    Exodos    :    To ostream.                                            //
    //                                                                    //
    //    Skopos    :    Enas operator<<.                                    //
    //                                                                    //
    //    Xronos    :    O(8n + 2).                                            //
    //                                                                    //
    //////////////////////////////////////////////////////////////////////
    
    std::ostream &operator<<(std::ostream &output, const CLIEDAT &Rhs)
    {
        //Dhlosh Metablhton
    //
            //Kurio Programma
        output << "ATNumber: " << Rhs.itsATNumber << "FirstName: " << Rhs.itsFirstName << "LastName: " << Rhs.itsLastName << "Street: " << Rhs.itsStreet << Rhs.itsStreetNumber << "ZipCode: " << Rhs.itsZipCode << std::endl;
        return output;
    }
    


  • Funktioniert auch nicht 😞 . Ich habe so eine art "Inline" funktion benutzt jetzt geht es, obschon ich diesen stil hase.

    class CLIEDAT 
    { 
    
    public:
    	friend std::ostream &operator<<(std::ostream &output, const CLIEDAT &Rhs) 
    	{ 
    	    //Dhlosh Metablhton 
    	// 
    	     //Kurio Programma 
    	    output << "ATNumber: " << Rhs.itsATNumber << "FirstName: " << Rhs.itsFirstName << "LastName: " << Rhs.itsLastName << "Street: " << Rhs.itsStreet << Rhs.itsStreetNumber << "ZipCode: " << Rhs.itsZipCode << std::endl; 
    		return output; 
    	} 
        //operaor << 
     //   friend std::ostream &operator<<(std::ostream &output, const CLIEDAT &rhs); 
    
        //operator>> 
        friend std::istream &operator>>(std::istream &Input, CLIEDAT &r);
    

    Ich verusche dann später dein tip zu programmieren (ja es ist schon spät auch für copy - paste), erst muss das prog. funktionieren.


Anmelden zum Antworten