我是reading导致我问这个问题的关联问题。嵌套函数不被允许,但为什么嵌套函数原型被允许? [C++]
考虑下面的代码
int main()
{
string SomeString();
}
所有说,编译器将其视为函数原型,而不是作为一个字符串对象。现在考虑下面的代码。
int main()
{
string Some()
{
return "";
}
}
编译器说这是无效的,因为我猜嵌套函数定义是不允许的。 如果不允许,为什么允许嵌套的函数原型?它没有给予任何好处,而不是让人混淆(或者我在这里错过了一些有效的观点?)。
我想通以下是有效的。
int main()
{
string SomeFun();
SomeFun();
return 0;
}
string SomeFun()
{
std::cout << "WOW this is unexpected" << std::endl;
}
这也令人困惑。我期待功能SomeFun()将只有在主要有一个范围。但是我错了。为什么编译器允许编译上面的代码?是否有任何实时情况下,上述代码有意义?
有什么想法?
+1只需点击相同的查询,&下面的答案包含所有信息和更多信息。 – slashmais 2010-11-04 05:39:14