博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2011年8月16日

摘要: 如果试图直接使用C++的成员函数作为回调函数将发生错误,甚至编译就不能通过。其错误是普通的C++成员函数都隐含了一个传递函数作为参数,亦即“this”指针,C++通过传递this指针给其成员函数从而实现程序函数可以访问C++的数据成员。这也可以理解为什么C++类的多个实例可以共享成员函数却-有不同的数据成员。由于this指针的作用,使得将一个CALL-BACK型的成员函数作为回调函数安装时就会因为隐含的this指针使得函数参数个数不匹配,从而导致回调函数安装失败。要解决这一问题的关键就是不让this指针起作用,通过采用以下两种典型技术可以解决在C++中使用回调函数所遇到的问题。这种方法具有通用 阅读全文

posted @ 2011-08-16 09:21 ChessYoung 阅读(2580) 评论(0) 推荐(0) 编辑

摘要: 注意的问题是:正负号;是否越界,也即是否全是数字;参数判断,一定要保证合法,不合法的中断运行#include "stdafx.h"#include <iostream>#include <assert.h>using namespace std;int atoi2(char *str);int main(void){ char *s = "+1a345"; int a = atoi2(s); cout << a; return 0;}int atoi2( char *str ){ assert(str != NULL) 阅读全文

posted @ 2011-08-16 08:54 ChessYoung 阅读(189) 评论(0) 推荐(0) 编辑