一个调用问题
2014-05-03 22:54
176 查看
在看项目代码时,发现有个调用,明明调用的函数基类的,搞不懂为什么会调用到派生类的,这是个虚函数,我想肯定是指针的问题,我又想到了是绑定时候的问题
感觉这个this绑定的肯定是基类的指针啊,调用怎么会调用到派生类上面去,自己写个例子测试
调用的果然是派生类的fun1,我知道是这个绑定this指针的问题,但具体的还是不清楚,得看看c++内存模型这本书,大家对这本书评价都很高,到时得看看。
thrTransData::thrTransData() { m_spTimerFactory = NEWSP(TimerFactory); new std::thread(std::bind(&thrTransData::thread, this)); };
感觉这个this绑定的肯定是基类的指针啊,调用怎么会调用到派生类上面去,自己写个例子测试
#include <iostream> #include <functional> using namespace std; class A{ public: A(); virtual void fun1(){}; void fun2(); std::function<void()> m_heh; }; A::A() { m_heh = std::bind(&A::fun2, this); } void A::fun2() { fun1(); } class B:public A { public: void fun1(); private: }; void B::fun1() { std::cout<<"hhe"; } int main() { A* p = new B; p->m_heh(); getchar(); return 0; }
调用的果然是派生类的fun1,我知道是这个绑定this指针的问题,但具体的还是不清楚,得看看c++内存模型这本书,大家对这本书评价都很高,到时得看看。
相关文章推荐
- 同一个service调用多个dao的事务问题
- COM调用的一个问题
- 一个C#中调用命令行程序的问题
- 一个关于相互调用、传值问题
- C++ - 一个构造函数调用构造函数的问题
- Cmake调用NSIS(一个可执行文件,其实就是一个编译器)编译NSIS脚本问题研究
- 翻译《有关编程、重构及其他的终极问题?》——19.如何合理的从一个构造函数中调用另外一个构造函数
- 一个XSLT的变量、参数和模板调用的问题
- c#下调用VC dll 的一个问题
- el表达式调用方法(曾经碰到的一个问题)
- 把一个进程内组件以进程外组件的形式调用引发的问题
- 多个线程调用同一个处理函数的互斥问题
- 一个AJAX调用方面的问题
- 刚遇到的一个C#中调用api,回调函数的问题
- 一个延时调用问题
- Python调用不在同一个文件夹下的Python程序,并且如何解决pyinstaller打包路径问题
- 调用CInternetSession::OpenURL()时的一个问题。
- 解决一个小问题:asp调用读取后台栏目
- 关于一个程序调用另外一个程序或者传值的小问题
- C#调用SQL事务时出现的一个问题