Klasse statt Masse



  • Hallöle,

    ich habe Zwei Klassen, nennen wir sie:

    class A {
    };
    
     und
    
    class B {
    };
    

    Klasse A soll die (einzige) Klasse sein, die aus Main aufgerufen werden soll.
    Beispiel

    int main() {
       A a;
       a.TuWas();
    }
    

    Nun gut, um mal auf den Punkt zu kommen, ich will definierte Elemente aus Klasse B in Klasse A aufrufen, wie geht das genau?



  • Was genau ist dein Problem?

    Du musst #include "b.h" in a.h schreiben:

    // Header A.h
    #ifndef A_H
    #define A_H
    
    #include "B.h"
    
    class A
    {
      B _b;
    };
    
    #endif
    


  • Hi,

    und wie geht das hier nicht?

    #include <iostream>
    using namespace std;
    
    class A {
    public:
      A();
      ~A();
    };
    
    A::A() {
      cout << "Klasse A";
    }
    
    A::~A() {
    }
    
    class B {
    public:
      B();
      ~B();
      A aa;
      aa.A(); // <- Das geht hier irgendwie nicht
    };
    
    B::B() {
    cout << "Klasse B";
    }
    
    B::~B() {
    }
    
    int main()
    {
    }
    


  • Du kannst den Konstruktor nicht explizit aufrufen! Der Konstruktor wird aufgerufen, wenn du das Objekt erzeugst, also hier:

    A aa;
    


  • heulSuSi schrieb:

    und wie geht das hier nicht?

    [cpp]
    // ...
    A aa;
    aa.A(); // <- Das geht hier irgendwie nicht
    // ...

    Kein Wunder, Konstruktoren ruft man nicht so auf, der Konstruktor von A wurde bereits in der ersten Zeile aufgerufen!


Anmelden zum Antworten