仿函数 operator()()如何把一个类函数嵌套再另外一个类中

小陆zi 2018-07-10 10:31:10
大家好:
关于仿函数:
(1)
class LessThan5Functor {
public:
bool operator ()(const string& str) {//寻找长度小于5的字符串
return str.length() < 5;
}
};
然后定义 类LessThan5Functor的变量 lt:
LessThan5Functor lt;
lt(“hello”);
通过函数类的实例lt,然后调用重载operator ()的函数。
但是还有一种表达方式我不明白
(2)
std::function<void(int)> f_obj = LessThan5Functor();
function是一个模板类 如何把任意一个类嵌套再function的类中?
c++有没有这样的类或者表达式可以使两个不同的类相等(嵌套)?
class A a; //A和B不是继承的关系
class B b=a;

谢谢
...全文
122 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
小陆zi 2018-07-10
  • 打赏
  • 举报
回复
我的问题是这样的: function<>是一个模板类,class A 是一个仿函数(function object)。 为什么两个不同的类可以使用 “=”赋值? 比如: function(void<int>) f_obj = A(); 两个类怎么去做赋值?
AlbertS 2018-07-10
  • 打赏
  • 举报
回复
看不太懂你的意思,你指的是模板吗?
A-De 2018-07-10
  • 打赏
  • 举报
回复
std::function<void(int)> f_obj = LessThan5Functor();

在这里是调用赋值构造,即
std::function<void(int)> f_obj(LessThan5Functor());

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧