您的位置:首页 > 其它

Map中放置类指针并实现调用

2013-10-28 22:49 127 查看
工作中使用到多进程通信,利用到了map以及multimap来进行实现。

需要做一个简单测试例子,直接上代码。

/*
*  main.cpp
*  Created on: Oct 28, 2013
*      Author: Sam.Nie
*/
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <map>
#include <iostream>
using namespace std;

class AB
{
public:
virtual void bar() = 0;
virtual ~AB() {};
};

class A : public AB
{
void bar() { cout << "A\n"; }
};

class B : public AB
{
void bar() { cout << "B\n"; }
};

int main()
{
printf("Hello, Sam Test Here.\n");

//map
map<int, AB*> mapAB;
mapAB.insert(pair<int, AB*>(1, new A));
mapAB.insert(pair<int, AB*>(2, new B));

map<int, AB*>::iterator it;
for(it = mapAB.begin(); it != mapAB.end(); it++)
{
AB *pAB = it->second;
pAB->bar();
delete pAB;
}

//multimap
multimap<int, AB*> multimapAB;
multimapAB.insert(pair<int, AB*>(1, new A));
multimapAB.insert(pair<int, AB*>(1, new B));

multimap<int, AB*>::iterator multiit;
for(multiit = multimapAB.begin(); multiit != multimapAB.end(); multiit++)
{
AB *pAB1 = multiit->second;
pAB1->bar();
delete pAB1;
}
return 0;
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐