我们可以在函数体内声明函数:
void f(double) {
cout << "f(double) called";
}
void f(int) {
cout << "f(int) called";
}
void g() {
void f(double); //Functions declared in non-namespace scopes do not overload
f(1); //Therefore, f(1) will call f(double)
}
在这种情况下,可以这样做是为了隐藏一个函数,例如f(int),但我的问题是:这真的是可以在另一个函数中声明一个函数的唯一原因吗?
或者换言之:在函数内部声明函数的可能性是否仅用于隐藏函数?
这也可用于将函数声明的可见性限制为仅一个特定函数.例如:
文件1.cpp:
文件2.cpp: