C++ 0x пример списка инициализатора

Будьте проще, используйте DOM


$("li").click(function(e) {

    if (this.previousSibling != null)
    {
        /* do something */
    }

});
8
задан CW Holeman II 30 October 2010 в 09:54
поделиться

2 ответа

В последних примерах не будет разрешено, поскольку вы запрашиваете указатели, но вместо этого пытаетесь предоставить локальные временные объекты.

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

Это было бы разрешено, и не было бы двусмысленности типов.

Это тоже было бы правильно:

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

И ваш пример больше похож на:

std::vector<Ask> ui ={  // not pointers
    {"Enter your name: "},
    {"Enter your city: "},
    {"Enter your age: "}
    };

std::vector<AskString> uiString ={  // not pointers
    {"Enter your name: ", 3, 25},
    {"Enter your city: ", 2, 25},
    {"Enter your age: ", 7, 42}
    };

и опять же не будет двусмысленности по типам.

9
ответ дан 5 December 2019 в 21:21
поделиться

Список инициализаторов C ++ однородный , что означает, что он должен иметь один и тот же тип, поэтому пример №2 отсутствует. Если вы использовали new в примере 1, это сработает.

-2
ответ дан 5 December 2019 в 21:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: