作用域对重载的影响
两张图可以看出,要是在局部作用域内声明函数,那么就不能访问外部相同名字的函数
函数指针
bool (*pf)(const string &, const string &);//pf是一个指针,指向一个函数,这个函数的参数书两个const string的引用,返回值是bool
bool *pf(const string &, const string &);//一个名为pf的函数,返回值是bool*
//函数声明
bool lengthCompare(){
cout<<'1';
}
bool (*pf)();//声明指针
int main() {
pf = lengthCompare;
(*pf)();//调用指针
return 0;
}
//函数指针的返回类型和形参列表必须要跟所指向的函数相同
void f(int*);
void f(unsigned int);
void (*pf1)(unsigned int) = f; //pf1指向f(unsigned int)
void (*pf2)(int) = f; //错误,没有任何一个f与该形参列表匹配
double (*pf3)(int*) = f; //错误,没有f的返回类型匹配