Существует класс с нестандартным конструктором.Различные способы создания объектов в стеке
#include <iostream>
class Foo {
public:
Foo(int a) { std::cout << "Constructor" << std::endl; };
}
Так конструктор по умолчанию не может быть вызван:
Foo obj; // compilation error
Не-конструктор по умолчанию может быть inkoved:
Foo obj(1);
Вопрос:
Что происходит в следующей строке, которая компилируется?
Foo obj();
[Наиболее досадно синтаксического анализа] (https://en.wikipedia.org/wiki/Most_vexing_parse). –