Я хочу инициализировать m в конструкторе A. Является ли выражение круглых скобок с некоторыми параметрами непосредственно после имени класса (std::vector<double>
) законным?В скобках сразу после имени класса создается новый экземпляр?
И что разница между Array m(n,0.0)
и m=Array(n,0.0)
?
Обратите внимание, что предпочтительный способ сделать это - использовать список инициализаторов: 'A :: A (int n): m (n, 0.0) {}' Это непосредственно вызывает конструктор для m member без каких-либо копий или накладных расходов. См. Http://en.cppreference.com/w/cpp/language/initializer_list – SirDarius
Является ли это новым стандартом C++? – edmz
@black Нет, это не так. –