bind问题,求解

LaoJiu_ LaoJiu_ 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

class CStudent
{
public:
void operator() (string strName, int nAge)
{
cout << strName << " : " << nAge << endl;
}
};

int main()
{

using namespace std::placeholders;

//----------#1
auto one = bind(CStudent(), "mi", _1);
one(12);

//--------#2
CStudent student;
auto two = bind(&CStudent::operator(), student, "mi", _1);
two(12);

return 0;
}


#1与#2,前者没有申明类变量,直接CStudent()这样就用了;后者需要申请类的一个变量,并且在bind使用中,娅需要把这个变量加进去,这两者区别是什么,前者为什么可以那样用?

还有一个疑问,就是bind的第一个参数不是要绑定一个地址么(我是这么理解的,错了请指正),为什么在绑定一个普通函数时只需要把函数名写进去就行了,但是在绑定类/结构体内函数时就要加一个&?
...全文

相关推荐

评论 5
收藏 已收藏
分享
返回顶部
LaoJiu_
C++ 语言 65,214 成员 250,514 内容