- 论坛徽章:
- 0
|
代码如下:
- #include "stdafx.h"
- #include <stdio.h>
- #include <stdlib.h>
- #include <iostream>
- #include <string>
- #include <map>
- using namespace std;
- typedef int (*nmi_callback)(void*);
- typedef map<string, nmi_callback> TMapLibCallback;
- typedef int (*snmpListenerCallback)(void*);
- int test(void* param)
- {
- printf("In test\n");
- printf("%s\n", (char*)param);
- return 0;
- }
- int _tmain(int argc, _TCHAR* argv[])
- {
- TMapLibCallback mapLibCallback;
- mapLibCallback.insert(make_pair("test", test));
- TMapLibCallback::iterator iter = mapLibCallback.find("test");
- snmpListenerCallback snmpCallback;
- if (iter != mapLibCallback.end())
- {
- //snmpListenerCallback = iter->second;这样调用就会出错,为什么呢?
- snmpCallback = iter->second;
- }
- snmpCallback("hello");
- return 0;
- }
复制代码 在我注释的那行,会出错,为啥呢,求解释。 |
|