this指针
文章平均质量分 62
歪锅锅
游神哦
展开
-
C++11 成员函数作为回调函数使用示例
前言std::bind()被广泛地应用在新式的回调函数中。C++11以前类的普通成员函数不能作为回调函数去注册,因为将普通成员函数注册给对方,但对方使用这个函数指针时,就会发生参数列表匹配的问题,因为少了隐含的this。静态成员函数不包含this指针,所以一般将静态成员函数注册给对方。C++11推出std::bind()和std::function搭配,前者生成新的调用对象,参数个数可以小于绑定函数的参数个数,少的参数,按位占用。后者保存函数调用类型的函数对象,使用该对象进行设置参数即可。示例1原创 2021-04-14 23:27:53 · 3315 阅读 · 0 评论 -
从汇编和编译器角度分析C++得this指针和成员函数寻址
(鄙人总结,希望和大家交流,切莫转载,谢谢!)引入先看一段这个代码:#include <cstdio>class Moo { public: void Printf(int a) { ::printf("%p, %d\n", this, a); }};int main() { Moo *p = nullptr; p->Printf(1); p = new Moo; p->Printf(1); delete p;}执行结果是:(nil原创 2021-04-07 23:00:10 · 552 阅读 · 0 评论