Wie greift man auf private operation zu?



  • Hallo@ all!!

    Ich bin grad neu bei C++ gleiche fragen wie die Headline!

    class beispielklasse
    {
    private:
     void getparameter(); 
    public:
     int run();
    };
    

    Wie kann ich bei dieser klasse dann auf getparameter() zugreifen?

    mfg



  • Sry falsches forum bitte verschieben nach c++;



  • Gar nicht. Diese Funktion ist eine Privatangelegenheit der Klasse 🙂



  • C++_newbi schrieb:

    Wie kann ich bei dieser klasse dann auf getparameter() zugreifen?

    Von Außen gar nicht, wohl aber von allen Methoden der Klasse.



  • Und wie mach ich das mit den methoden? Über run oder was?



  • Du sollst nicht auf private-Funktionen zugreifen dürfen. Les mal ein Buch über Objektorientierung



  • C++_newbi schrieb:

    Und wie mach ich das mit den methoden? Über run oder was?

    Ich stelle jetzt mal die Fälle public, protected und private an einfachen Membervariablen dar:

    class Base {
        private:
            int value_private;
        protected:
            int value_protected;
        public:
            int value_public;
            void base_method() {
                value_private   = 0; // => möglich
                value_protected = 0; // => möglich
                value_public    = 0; // => möglich
            }
    }
    
    class Child : public Base {
        public:
            void child_method() {
                // value_private= 1;    => Nicht möglich
                value_protected = 1; // => möglich
                value_public    = 1; // => möglich
            }
    }
    
    int main()
    {
        Base base;
        Child child;
    
        base.value_public = 2;  // möglich
        child.value_public = 2; // möglich
        // Nicht möglich: Direkter Zugriff auf value_protected, value_private
    }
    


  • Es geht aber auch mit this oder? Also innerhalb ein Methode oder?



  • C++_newbi schrieb:

    Es geht aber auch mit this oder? Also innerhalb ein Methode oder?

    Nur mal eine dumme Frage: Hast du dir meinen Code überhaupt angeschaut, darin sind zwei Methoden (base_method, child_method; sofern sich der Name nicht mit einem Parameter oder einer lokalen Variable überlappt, ist es egal ob man davor this-> schreibt oder nicht) ?

    Nimm dir bitte ein Buch oder Tutorial vor. Deine Fragen deuten darauf das du so gut wie keinerlei Grundlagenwissen hast.


Anmelden zum Antworten