标题来自 Marshall Cline 的著名站点C++ FAQ。
作者声称以下两个代码示例之间存在差异。
假设 List 是某个类的名称。然后函数 f() 声明了一个名为 x 的本地 List 对象:
void f()
{
List x; // Local object named x (of class List)
...
}
但是函数 g() 声明了一个名为 x() 的函数,它返回一个 List:
void g()
{
List x(); // Function named x (that returns a List)
...
}
但是使用第二种变体真的是错误的吗?
如果它真的是一个声明,编译器不会抱怨你不能在一个函数中声明一个函数吗?