Selbstdefinierten Datentyp in Vektor Speichern ??



  • Hallo ich habe zwei Klassen und möchte nun einen Benutzer
    in einem Vektor speichern, jedoch bekomme ich immer folgende Fehlermeldung
    kann mir jemand weiterhelfen ???

    Benutzerliste.h(47) : error C2664: 'std::vector<_Ty>::push_back': Konvertierung des Parameters 1 von 'Benutzer (__cdecl *)(std::string)' in 'const Benutzer &' nicht möglich
    1> with
    1> [
    1> _Ty=Benutzer
    1> ]
    1> Ursache: Konvertierung von 'overloaded-function' in 'const Benutzer' nicht möglich
    1> Quelltyp konnte von keinem Konstruktor angenommen werden, oder die Überladungsauflösung des Konstruktors ist mehrdeutig

    #ifndef BENUTZER_H
    #define BENUTZER_H
    
    #include<iostream>
    #include<string>
    using namespace std;
    
    class Benutzer {
    
    private:
    string name;
    
    public:
    Benutzer(string a);
    };
    
    Benutzer::Benutzer(std::string a){
    	name = a;
    }
    
    #endif
    
    #ifndef BENUTZERLISTE_H
    #define BENUTZERLISTE_H
    
    #include<iostream>
    using namespace std;
    #include<vector>
    #include"Benutzer.h"
    class Benutzer;
    
    class BenutzerListe {
    
    private:
    
    vector<Benutzer> v1;
    
    public:
    BenutzerListe();
    
    bool hinzu(string a);
    };
    
    BenutzerListe::BenutzerListe(){
    	cout << "Konstruktor Benutzerliste" << endl; 
    }
    
    bool BenutzerListe::hinzu(std::string a){
    
    	Benutzer tmp(string a);
    	v1.push_back(tmp);
    	return false;
    }
    
    #endif
    

    Vielen Dank


  • Mod

    Arthur21 schrieb:

    Benutzer tmp(string a);
    	v1.push_back(tmp);
    

    Hier wird eine Funktion! tmp deklariert. In der nächsten Zeile versuchst du dann einen Funktionszeiger auf diese Funktion im Vektor zu speichern, was nat. nicht geht.
    Sicherlich war das hier gewollt:

    Benutzer tmp(a);
    

Anmelden zum Antworten