C++ Anfänger braucht Hilfe bei Klassen !!



  • MoinMoin Leude,
    hab ma meinen Code angehängt und hab folgendes Problem:

    Mein Ziel ist es eine Liste Auszugeben mit dem jeweiligen Autor und seinen geschriebenen Buechern. Dazu hab ich einfach ma ein 2 Autoren erstellt und 4 Bücher. Die Namen sind selbst erklärend. Was ist nun zu tun um Autoren und Bücher in verbindung zu bringen und auszugeben?
    Wär prima wenn ma jemand was posten könnte (am liebsten den fehlenden Code) und bitte dran denken das ich Anfänger bin...!

    Vielen Danke.

    Tschöööö Dirk !!!

    #include <iostream>
    #include <cstring>
    using namespace std;
    
    /////////////////////// /////////////////////////Klasse Autor
    class Autor{
    private:
    	char name[30];
    
    public:
    	void datenEingeben(char *string);
    	void datenAusgeben();
    };
    
    void Autor::datenEingeben(char *string){
    	strncpy(name,string,29);
    
    }
    
    void Autor::datenAusgeben(void){
    	cout<<"\nName: "<<name;
    
    }
    
    ///////////////////////////////////////////////Klasse Buch
    class Buch{
    private:
    	char titel[30];
    
    public:
    	void titelEingeben(char *string);
    	void titelAusgeben();
    };
    
    void Buch::titelEingeben(char *string){
    	strncpy(titel,string,29);
    }
    
    void Buch::titelAusgeben(void){
    	cout<<"\nTitel: "<<titel;	
    }
    
    ////////////////////////////////////////////////Main
    
    void main(void){
    
    	///////////////////////////////////// 2 Autoren werden erstellt und 3 Buecher
    	Autor a1;
    	a1.datenEingeben("hans");
    
    	Autor a2;
    	a2.datenEingeben("peter");
    
    	Buch b1;
    	b1.titelEingeben("hans_buch_eins");
    
    	Buch b2;
    	b2.titelEingeben("hans_buch_zwei");
    
    	Buch b3;
    	b3.titelEingeben("hans_buch_drei");
    
    	Buch b4;
    	b4.titelEingeben("peter_buch_eins");
    
    }
    


  • Was ist nun zu tun um Autoren und Bücher in verbindung zu bringen

    ja welche verbindung hättest du denn gern? 🤡



  • scheint ja irgendwie eine klasse zu sein, die gerade diesselben hausaufgaben hat
    http://www.c-plusplus.net/forum/viewtopic.php?t=88175&sid=af1d349706230a40dda6653dfb8e6919
    😉



  • Kleiner Denkanstoß: Ein Buch HAT einen Autor.



  • void main ()
    

    🙄
    Wo hast du das gelernt?



  • interpreter schrieb:

    Kleiner Denkanstoß: Ein Buch HAT einen Autor.

    Komposition? LOL, ich glaub der Denkanstoß ist leicht irreführend 🙂



  • Bashar schrieb:

    interpreter schrieb:

    Kleiner Denkanstoß: Ein Buch HAT einen Autor.

    Komposition? LOL, ich glaub der Denkanstoß ist leicht irreführend 🙂

    Zunächst mal ist eine "HAT-Beziehung" nur eine Assoziation. Ob er sie als Komposition oder Aggregation realisiert ist dann zu entscheiden (sollte hier klar sein). Und was ist daran irreführend?



  • Vielleicht kannst du das gar nicht rausfinden, da du keine Möglichkeit hast den Titel zu erfahren und vielleicht in dem string nach dem Autor zu suchen...
    Am besten ist es, wenn du den code anschaust und es dadurch rausfindest 🙂



  • Suchfunktion bitte ....
    1. kein void main(void) -> int main()

    2. return 0; am ende nicht vergessen.
    Muss man nicht aber es gehört meiner Meinung nach zum guten Stil 😉

    cu



  • randa schrieb:

    void main ()
    

    🙄
    Wo hast du das gelernt?

    bei volkard 🤡



  • scrub schrieb:

    randa schrieb:

    void main ()
    

    🙄
    Wo hast du das gelernt?

    bei volkard 🤡

    LOL 🤡 👍



  • 🙂 Ja ja is ja gut mit int main() ..... 😃

    Jetzt aber mal zurück zu meinem Problem, bitte habt Rücksicht aber ich beschäftige mich erst seit genau 3 Tagen mit C++. Also kann mir nicht mal einer genau sagen was zu tun ist ohne das ich nur noch Bahnhof verstehe? 😞



  • Dirk_D schrieb:

    Jetzt aber mal zurück zu meinem Problem, bitte habt Rücksicht aber ich beschäftige mich erst seit genau 3 Tagen mit C++. Also kann mir nicht mal einer genau sagen was zu tun ist ohne das ich nur noch Bahnhof verstehe? 😞

    Vielleicht kannst du das gar nicht rausfinden, da du keine Möglichkeit hast den Titel zu erfahren und vielleicht in dem string nach dem Autor zu suchen...

    Woran soll man denn merken, wem welche Bücher gehören? Nur am Namen des Buches ("hans_buch_eins")? Dann musst du eine Funktion schreiben, die den Titel zurückgibt, und diesen Titel nach hans oder peter durchsuchen.



  • Vielleicht hab ich mich ein wenig falsch ausgedrückt.

    Mir fehlt eine Funktion mit der ich z.B. per Pointer oder anderen Kram Autoren mit Büchern verbinden kann. Da ich nicht weiß wie man das macht, ist es auch noch nicht implementiert. Ich dachte jemand hackt mir noch die fehlenden Zeilen schnell rein und ich hab mein "Aha" Erlebniss. Offenbar hab ich en kompletten Denkfehler bei der ganzen Geschichte und deshalb kann mir keiner helfen...!



  • SpIriT alias PrOjEcT101 schrieb:

    Suchfunktion bitte ....
    1. kein void main(void) -> int main()

    2. return 0; am ende nicht vergessen.
    Muss man nicht aber es gehört meiner Meinung nach zum guten Stil 😉

    Ich bin ja selbst ein Verfechter der Suchfunktion, aber nach was soll man denn bei diesem Problem bitte suchen?

    EDIT:

    class buch{
    public:
    ...
    private:
     Autor* autor; // Deine Klasse Buch hat einen Autor...
    }
    


  • @CarstenJ
    Ahhhso! So ein halber Groschen is gefallen, aber wie weiß dem Autor Pointer jetzt die Adresse von meinem Autor Objekt zu ?



  • Dirk_D schrieb:

    @CarstenJ
    Ahhhso! So ein halber Groschen is gefallen, aber wie weiß dem Autor Pointer jetzt die Adresse von meinem Autor Objekt zu ?

    Im Konstruktor von Buch.



  • Na über eine Funktion.

    void AssignAuthor (const Author &A) { Author=&A; }
    


  • randa schrieb:

    Na über eine Funktion.

    void AssignAuthor (const Author &A) { Author=&A; }
    

    Das ist schlecht. Der Autor eines Buches wird sich kaum ändern...


Anmelden zum Antworten