Konstruktor/Vektor



  • Hallo,habe hier ein kleines Problem. Ich brauche zu diesem Programmtext einen Konstruktor für den Vektor und den 2 Stringelementen, die sich in der Klasse(.h,.cpp)befinden sollten. Finde dazu keinen Einstieg zur Lösung. Für Tipps und Hilfe bedanke ich mich.

    int
    main() {
    cout << "Konstruktoren und Destruktoren testen" << endl;
    {
    comment="Konstruktor mit vielen Argumenten testen";

    string titel_var = "TEST1000";
    int aufnahmejahr_var = 1001;
    vector<string> schauspieler_var;

    //Vektor mit Werten fuellen
    schauspieler_var.push_back( "TEST1002");
    schauspieler_var.push_back( "TEST1003");
    schauspieler_var.push_back( "TEST1004");
    schauspieler_var.push_back( "TEST1005");
    schauspieler_var.push_back( "TEST1006");

    spielfilm o2(titel_var, aufnahmejahr_var, schauspieler_var);

    // Felder von Objekten
    // Welcher Konstruktor wird hier getestet?
    // C-Felder:
    comment="C-Felder von Objekten testen";
    spielfilm c_feld[10];

    // Dynamische Felder
    // von Objekten
    comment="Dynamische Felder von Objekten testen";
    vector<spielfilm> dyn_feld(10);
    }



  • Kannst du dein Problem mal genauer erklären, irgendwie versteh ich nicht ganz was du willst. Du brauchst einen ctor für vector und string? Was denn für welche? Die, die bereits vom Standard definiert werden, oder willst du neue schreiben? Und was meinst du mit

    Mudder schrieb:

    die sich in der Klasse(.h,.cpp)befinden sollten

    ?
    Welche Klasse denn? Fragen über Fragen...



  • hallo,versuche mein Problem nochmal genauer zu schildern. Für die 3 Variablen die im Quelltext angelegt wurden soll ich Konstruktoren schreiben. Gerade beim Konstruktor für den Vektor fehlt mir der Einstieg. Dabei soll ich eine Klasse mit dem Konstruktor - Prototyp als .h Datei schreiben und noch eine weitere .cpp, in der die Konstruktorfunktion ausformuliert werden soll.



  • Irgendwie wirft dein 2. Post noch mehr Fragen auf, als er beantwortet. 😃

    Mudder schrieb:

    Für die 3 Variablen die im Quelltext angelegt wurden

    Irgenwie zähl ich mehr als nur 3. Welche denn nun?

    Mudder schrieb:

    soll ich Konstruktore schreiben

    Das geht schon mal gar nicht. Du kannst nur für Klassen Konstruktoren schreiben.

    Mudder schrieb:

    Gerade beim Konstruktor für den Vektor fehlt mir der Einstieg

    Du musst echt einen ctor für vector schreiben, den aus der stl und damit die stl Implementation anfassen? Kommt mir irgendwie komisch vor. Oder musst du eine Klasse schreiben, welche einfach nur einen vector beinhaltet? Also ungefähr sowas

    class foo
    {
    private:
        std::vector<std::string> vector_intern_;
    public:
        foo(const std::vector<std::string>& source)
            : vector_intern_(source)
        {
        }
    };
    


  • Im Prinzip muss ich eine Klasse schreiben, in der ein (oder mehrere?) Konstruktoren für diese Variablen: string titel_var = "TEST1000";
    int aufnahmejahr_var = 1001;
    vector<string> schauspieler_var
    vorkommt (oder vorkommen).

    Z.B.
    Class Spielfilm{
    Public:
    Spielfilm(titel_var){_titel_var = titel_var}

    Private:
    string _titel_var;
    string aufnahmejahr_var;
    vector<string> schauspieler_var;
    }
    ok. Und jetzt brauche ich halt noch den Konstruktor für den Vektor. Ob das einen Sinn macht weiss ich nicht. Das ganze soll dann mit dem zuerst angegebenen Programm funktionieren. Ist so ne Übung vom Prof.



  • Aha, jetzt wirds schon klarer.

    class spielfilm
    {
    private:
        std::string titel_;
        int aufnahmejahr_;
        std::vector<std::string> schauspieler_;
    public:
        // ctor um alle Member zu initialisieren
        spielfilm(const std::string& titel, int aufnahmejahr, const std::vector<std::string>& schauspieler)
            : titel_(titel)
            , aufnahmejahr_(aufnahmejahr)
            , schauspieler_(schauspieler)
        {
        }
        // ctors um einzelne Member zu initialisieren
        spielfilm(const std::string& titel)
            : titel_(titel)
            , aufnahmejahr_(0)
        {
        }
        spielfilm(int aufnahmejahr)
            : aufnahmejahr_(aufnahmejahr)
        {
        }
        spielfilm(const std::vector<std::string>& schauspieler)
            : aufnahmejahr_(0)
            , schauspieler_(schauspieler)
        {
        }
    };
    

    So oder so ähnlich könnten die Konstruktore aussehen.


Anmelden zum Antworten