Initialisieren von array-oder Vektor-über-Konstruktor initialisieren Liste

Wie kann ich die initialisieren einer (string -) array oder einen Vektor mit einem Konstruktor initialisiert die Liste in C++?

Betrachten Sie bitte dieses Beispiel, wo ich will und initialisiert ein string-array mit Argumenten an den Konstruktor:

#include <string>
#include <vector>

class Myclass{
           private:
           std::string commands[2];
           //std::vector<std::string> commands(2); respectively 

           public:
           MyClass( std::string command1, std::string command2) : commands( ??? )
           {/* */}
}

int main(){
          MyClass myclass("foo", "bar");
          return 0;
}

Außerdem, welche der beiden Typen (array vs Vektor) wird empfohlen, zum speichern von zwei strings, während Sie ein Objekt erstellen, und warum?

Verwenden Sie Klammern, wie Sie es normalerweise tun würden.
Wie in Myclass m = {"hello", "world"}; oder wie in Myclass(const std::string& c1, const std::string& c2) : commands{c1, c2}{}?
Einer von denen wird nicht initialisiert die Mitglieder, während der andere angezeigt wird schön in Vaughn ' s Antwort.
Ja, das war in etwa was ich wollte. 😉

InformationsquelleAutor fotinsky | 2013-10-24

Schreibe einen Kommentar