C++0x Initialisierungsliste Beispiel

Ich würde gerne sehen, wie dieses Beispiel der vorhandene code in der Lage wäre, um die Vorteile der C++0x-Initialisierer-Liste-Funktion.

Example0:

#include <vector>
#include <string>
struct Ask {
    std::string prompt;
    Ask(std::string a_prompt):prompt(a_prompt){}
};
struct AskString : public Ask{
    int min;
    int max;
    AskString(std::string a_prompt, int a_min, int a_max):
        Ask(a_prompt), min(a_min), max(a_max){}
};
int main()
{
    std::vector<Ask*> ui;
    ui.push_back(new AskString("Enter your name: ", 3, 25));
    ui.push_back(new AskString("Enter your city: ", 2, 25));
    ui.push_back(new Ask("Enter your age: "));
}

Würde es unterstützen, so etwas wie dieses:

Beispiel1:

std::vector<Ask*> ui ={
    AskString("Enter your name: ", 3, 25),
    AskString("Enter your city: ", 2, 25),
    Ask("Enter your age: ")
    };

Oder muss Sie es haben-Literale wie das?:

Beispiel2:

std::vector<Ask*> ui ={
    {"Enter your name: ", 3, 25},
    {"Enter your city: ", 2, 25},
    {"Enter your age: "}
    };

Wenn ja, wie würde der Unterschied zwischen AskString und Fragen werden behandelt?

Schreibe einen Kommentar