首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >收费站怎么了?

问收费站怎么了?
EN

Stack Overflow用户
提问于 2018-05-17 11:28:08
回答 1查看 89关注 0票数 1

我读到的答案是:https://stackoverflow.com/a/5539302/588867

这部分的内容是什么:这一行代码中的(int (*)(int))tolower:

transform(s.begin(),s.end(),s.begin(),(int (*)(int))tolower );

如果我让这个函数和代码工作:

代码语言:javascript
复制
int myToLower(int c){
    return tolower(c);
}

transform(s.begin(),s.end(),s.begin(), myToLower);

这部分的通俗之处是:(int (*)(int))。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-17 11:31:48

您可以在my answer中看到这个答案,这是一个函数指针。你可以在这里读到更多关于他们的信息:functions

从根本上说,这是一个指向接受int参数并返回int的函数的指针。

transform在使用myToLower时工作,而不是在未使用的tolower中工作,原因是在代码中,tolower函数被语言环境库的tolower和ctype库的tolower重载到std命名空间中。如果只使用函数名作为未加载指针,则不会执行过载解析,您将得到一个错误。当您转换函数指针时,您是在告诉编译器您想要的重载。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50390309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档