Hab Probleme mit mehreren cpps und header Dateien



  • Gude eine Frage, und zwar habe ich mehrere cpp, Header Dateien und das Problem ist das mein Vector welches in meiner datenbank header datei liegt in der Zeile (13 und 14) liegt diese Vektoren möchte ich in meiner kunde cpp datei benutzen in der Zeile (23) benutzen aber die kunde cpp Datei erkennt die Vector nicht, obwohl ich die Header Datei includiert habe weiß jetzt nicht, woran es liegt...🤔😅

    main cpp:

    #include <iostream>
    using namespace std;
    int main() {
    
    
        return 0;
    }
    

    kunde header:

    #ifndef KUNDE_AUFGABE_KUNDE_H
    #define KUNDE_AUFGABE_KUNDE_H
    #include <string>
    using namespace std;
    
    class kunde
    {
    
    private:
    
    public:
    
    //Attribute:
    string Kundenname;
    string Name;
    
    //Stanartkonstruktor
    kunde();
    //Allgemeiner Konstruktor
    kunde(string kundenamen, string name);
    
    //Methoden
    void kunde_hinzufuegen (kunde k);
    void kunde_loeschen(kunde k);
    void kunde_anzeigen();
    
    
    };
    
    #endif //KUNDE_AUFGABE_KUNDE_H
    

    Kunde cpp:

    #include "kunde.h"
    #include "datenbestand.h"
    #include <vector>
    using namespace std;
    
    //Standartkonstruktor
    kunde ::kunde() {};
    
    //Allgemeinkonstruktor
    kunde ::kunde(string kundenamen, string name)
    {
        //Pointer
        this -> Kundenname = kundenamen;
        this -> Name = name;
    }
    
    //Methoden
    void kunde ::kunde_hinzufuegen(kunde k) {
    
    
    
    
    }
    

    datenbank header:

    #ifndef KUNDE_AUFGABE_DATENBESTAND_H
    #define KUNDE_AUFGABE_DATENBESTAND_H
    #include <vector>
    #include "kunde.h"
    #include "premium_kunde.h"
    using namespace std;
    
    class datenbestand
    {
    
    public:
    
        vector<kunde>vector_kunde;
        vector<premium_kunde> vector_premium_kunde;
    
    };
    
    
    #endif //KUNDE_AUFGABE_DATENBESTAND_H
    

    datenbank cpp

    #include "datenbestand.h"
    


  • @adii950 Befolge doch erstmal die Tipps, die du für deine Bücher bekommen hast.

    Woher weißt du, dass der Vector nicht erkannt wird?



  • Ja habe ich auch gemacht naja ich weiß es daswegen weil ich versucht habe in der kunde cpp datei meinen Vector aufzurufen mit den Namen meines Vectors aber er hat mir den Vector nicht angezeigt 😪🤔



  • @DirkB sagte in Hab Probleme mit mehreren cpps und header Dateien:

    @adii950 Befolge doch erstmal die Tipps, die du für deine Bücher bekommen hast.

    This!! Warum kann ein Kunde einen Kunden hinzufügen? Wo hinzu überhaupt? Warum ist das ist Aufgabe eines Kunden? Das ist doch dasselbe wie mit Buch und Bibliothek in deinem vorherigen Post.

    Warum wird in "Kunde" denn der "Datenbestand" included? Überlege dir, wer von wem abhängen soll!

    //Stanartkonstruktor

    Sorry, da kann ich nicht dran vorbeigucken. Das Wort heißt "Standardkonstruktor".

    aber die kunde cpp Datei erkennt die Vector nicht,

    Was heißt das? Exakte Fehlermeldung, bitte!



  • @DirkB hab die this zeiger wieder weggemacht und stattdessen eine Initialisierungsliste benutzt und zu der anderen fragen weil es in der Aufgabenstellung stand:

    Aufgabenstellung:

    1. Programmieren Sie die Klassen
      und sowie eine Klasse zur Verwaltung der Kunden
      (schon gemacht). Überlegen Sie sich passend dazu eine
      abstrakte Basisklasse.

    2. Implementieren sie Folgendes Menü:

    • Eingabe eines Kunden
    • Anzeige aller Kunden
      -Suche nach Kunden


  • @adii950 sagte in Hab Probleme mit mehreren cpps und header Dateien:

    Ja habe ich auch gemacht

    Nein, hast du nicht.
    Da gab es z.B. auch einen Hinweis bzgl. Headern und using namespace

    naja ich weiß es daswegen weil ich versucht habe in der kunde cpp datei meinen Vector aufzurufen mit den Namen meines Vectors aber er hat mir den Vector nicht angezeigt

    Was verstehst du unter "angezeigt"?
    Gibt es in der IDE keine Auswahl dazu oder meckert gar der Compiler?



  • @adii950
    Irgendwo fehlt irgendwas bei dir und/oder ist falsch verdrahtet.

    Du schreibst "die kunde cpp Datei erkennt die Vector nicht" und zeigst dann Code -- wo in "die kunde cpp" gar nicht auf "die Vector" zugegriffen wird.

    Dann, erst auf Nachfrage, schreibst du "weil ich versucht habe in der kunde cpp datei meinen Vector aufzurufen mit den Namen meines Vectors aber er hat mir den Vector nicht angezeigt". Und jetzt erwartest du dass wir a) wissen was du damit genau meinst und b) immer noch gewillt sind dir zu helfen, trotz dem du dir keine grosse Mühe zu geben scheinst dich verständlich zu machen.



  • Ist jetzt nichts speziell zu dem Thema, aber was mir aufgefallen ist,
    die folgenden Zeilen

    #ifndef KUNDE_AUFGABE_DATENBESTAND_H
    #define KUNDE_AUFGABE_DATENBESTAND_H
    #endif
    

    Benötigst du eigentlich nicht mehr. Es reicht, wenn du stattdessen

    #pragma once
    

    einfügst am Anfang deiner HEADER-Files



  • #pragma once geht aber nicht mit allen Compilern, während das erste immer geht.



  • @zeropage

    Wusste ich nicht. Programmiere nur mit VS.
    Trotzdem danke der Info!



  • @unkwnusr Mir persönlich wäre noch kein Compiler unter gekommen, der dass nicht kann. GCC, Clang uns MSVC können das auf jeden Fall. Daher ist es meiner Meinung nach vollkommen in Ordnung das zu benutzen, wenn man weiß, dass es Compiler geben kann, die das nicht unterstützten.


Anmelden zum Antworten