Eine Klasse braucht Variablen einer anderen Klasse



  • und ich grübel gerade welches der beste weg ist.

    1.)

    Im Konstruktor gebe ich die Klasse an welche die notwendigen Variablen enthält und hole sie mir dann per Funktionen

    2.)

    Ich nutze friend, allerdings weiß ich nicht wo da der genaue Unterschied ist? Selbst bei einer friend deklaration muss meine Klasse doch wissen WELCHE Klasse die richtige mit den wichtigen Variablen ist, also muss ich ihr das "sagen" 😉 und somit lande ich wieder bei Möglichkeit 1.

    ???



  • ich würde die eins nehmen. Dann entweder mit friend oder mit GetMethoden die Varibalen abfragen



  • deine klasse kann jederzeit auf die public-variablen der anderen klasse zugreifen. besser ist aber, du machst zugriffsfunktionen und die variablen private.
    solltest du aber variablen im sinne haben, die nicht der klasse gehören, sondern dem objekt, dann ist eins angesagt.
    friend ist eigentlich nie angesagt.



  • volkard schrieb:

    besser ist aber, du machst zugriffsfunktionen und die variablen private.

    so wollte ich es auch machen

    volkard schrieb:

    solltest du aber variablen im sinne haben, die nicht der klasse gehören, sondern dem objekt, dann ist eins angesagt.

    ??? Das verstehe ich nicht



  • class RokoPeziPanzerchen{
       int masse;//gehört dem objekt
       static int anzahl;//gehört der klasse
       ...
    };
    

    im Konstruktor gebe ich die Klasse an welche die notwendigen Variablen enthält und hole sie mir dann per Funktionen

    also

    class Rakete{
       ...
       template<class P>
       Rakete(P){
          P::setAnzahl(P::getAnzahl()-1);
       }
    }
    

    P würde hier die klasse darstellen, die du übergibst.

    class Rakete{
       ...
       Rakete(RokoPeziPanzerchen& rpp){
          rpp.setAnzahl(rpp.getAnzahl()-1);
       }
    }
    

    und hier wäre rpp ein objekt, das du angibst.


Anmelden zum Antworten