Есть ли разница между `List x;` и `List x ()`

Название происходит от известного сайтаC ++ FAQ Маршалл Клайн.

Автор утверждает, что есть разница между следующими двумя примерами кода.

Предположим, что List является именем некоторого класса. Затем функция f () объявляет локальный объект List с именем x:

void f()
{
    List x;     // Local object named x (of class List)
    ...
}

Но функция g () объявляет функцию с именем x (), которая возвращает список:

void g()
{
    List x();   // Function named x (that returns a List)
    ...
}

Но действительно ли неправильно использовать второй вариант?

И если это действительно декларация неt компилятор жалуется, что вы не можете объявить функцию внутри функции?

Ответы на вопрос(1)

Ваш ответ на вопрос