插入部分代码如下(StartThreadApiHooker是ApiHooker的子类):
StartThreadApiHooker* start = new StartThreadApiHooker();
mApiHookerHashMap.insert(make_pair("start", *start));
但当我再次从哈希表中取出元素时,元素的类型是ApiHooker,而不是StartThreadApiHooker,代码如下:
auto iElementFound = ApiHookerManager::getInstance()->mApiHookerHashMap.find(temp);
if(iElementFound != ApiHookerManager::getInstance()->mApiHookerHashMap.end()){
LOGD("find %s in mApiHookerHashMap",temp);
}
else
LOGE( "Key has no corresponding value in unordered map!");
ApiHooker* tempApiHooker = &(iElementFound->second);
tempApiHooker->parseParameter();//此处调用的是ApiHooker的方法,不是StartThreadApiHooker的方法