Fehlermeldung - Unbekannter Überschreibgunsspezifizierer ?!?!?



  • Hallo,

    ich habe hier eine Aufgabe, bei der ich eine Telefonliste erstellen soll. Nun steht auch in der Aufgabenstellung, dass ich ein statisches Array von Typ der Klasse erstellen soll, nur sobald ich das mache und übersetzen lassen, kommt der Fehler:

    Fehler C3646 "mensch": Unbekannter Überschreibungsspezifizierer, aber warum ?

    class Liste
    {
    private:
    
    	Eintrag mensch[10];
    
    public:
    	Liste();
    	void neuer_Eintrag();
    	void loesche_Eintrag();
    	void ausgeben();
    };
    

    Grüße Smuji

    Edit durch Arcoth: Code-Tags



  • Der Fehler liegt nicht im gezeigten Code.



  • nachfolgend habe ich noch nicht viel gemacht.... ausser in main() die cout's a la "bitte geben sie was ein"...

    also noch keine definitionen..

    ich hatte anfangs erstmal das gerüst von main() erstellt mit den ein und ausgaben....laufen lassen, alles ok !

    dann habe ich die klassen erstellt und immer wieder mal laufen lassen.

    kann es sein dass einfach noch irgendein gegenstück fehlt und er deshalb nichts damit anfangen kann ?



  • Was ist Eintrag?



  • Er sollte sich darüber beschweren, dass er keinen Typ Eintrag kennt.



  • sorry, hier der rest

    header datei:

    #pragma once
    #include <iostream>
    #include <string>
    using namespace std;

    class Liste
    {
    private:

    Eintrag mensch[10];

    public:
    void neuer_Eintrag();
    void loesche_Eintrag();
    void ausgeben();
    };

    class Eintrag
    {
    string vorname;
    string nachname;
    string telefon;

    public:
    string haus;

    };

    **
    cpp datei:**

    #include "Header.h"

    void Liste::neuer_Eintrag() {

    }

    void Liste::loesche_Eintrag() {

    }

    void Liste::ausgeben() {

    }



  • in der musterlösung werden die daten in main() in strings eingelesen und an eine methode der klasse liste übergeben.

    diese methode nutzt das array vom typ eintrag um in der klasse eintrag die strings zu "füllen"...

    wie nennt man diesen vorgang? damit ich mal im c++ buch nachschauen kann.

    denn ich hätte direkt auf die klasse eintrag zugegriffen und dort die strings gefüllt und nicht eine instanz von einer klasse in einer anderen klasse erstellt



  • Da Liste Eintrag verwendet, muss Eintrag vor Liste definiert werden.



  • ok, ich habe EINTRAG zwar deklariert, aber noch nicht definiert... aber ich habe auch noch keine methoden die ich definieren kann, sondern nur strings..

    wie müsste ich denn die klasse Eintrag nun definieren, nur damit die fehlermeldung weg geht ? also es geht vordergründig nicht um den sinn bzw. die funktion. ich will nur verstehen warum ich diese meldung erhalte.

    wenn ich nun meine deklaration so wähle:

    class Eintrag
    {
    string vorname;
    string nachname;
    string telefon;

    public:
    void machwas(); // eine methode erstellen, die ich definieren kann

    };

    und die definition:

    void Eintrag::machwas() {

    string vorname;
    }

    reicht das noch nicht aus um die fehlermeldung zu eliminieren. aber warum ?



  • Ich würde mal ein neues, leeres Konsolenprojekt erstellen. Dann eine Cpp Datei hinzufügen und alles in eine Datei machen. Wenn es kompiliert, dann kannst du es auf neue Dateien verteilen.



  • ok danke... ich glaube ich steige langsam dahinter...ich werde es mal probieren und zu ende definieren...


Log in to reply