boost shared_ptr疑问
typedefstd::deque<interface_event::ptr>event_queue;其中interface_event是自己定义的一个接口类,在应用中像...
typedef std::deque<interface_event::ptr> event_queue;其中interface_event是自己定义的一个接口类,在应用中像下面这样:
event_queue eq;
interface_event *p = new event_node();//event_node是interface_event的子类
interface_event::ptr t(p);
eq.push_back(t);
event_queue::iterator it;
for (it = eq.begin();it != eq.end();it++)
{
if(it->get() == (*it).get())
{
printf("=====\n");
}
}结果是输入"======",即it->get() == (*it).get(),为什么呢,为什么iterator也调用了shard_ptr 的get()方法,难道deque这个模板类继承了shared_ptr这个类吗,看了deque的代码好像没有,那为什么iterator也可以调用shared_prt的get方法呢????向高手请教!!!
?????? 展开
event_queue eq;
interface_event *p = new event_node();//event_node是interface_event的子类
interface_event::ptr t(p);
eq.push_back(t);
event_queue::iterator it;
for (it = eq.begin();it != eq.end();it++)
{
if(it->get() == (*it).get())
{
printf("=====\n");
}
}结果是输入"======",即it->get() == (*it).get(),为什么呢,为什么iterator也调用了shard_ptr 的get()方法,难道deque这个模板类继承了shared_ptr这个类吗,看了deque的代码好像没有,那为什么iterator也可以调用shared_prt的get方法呢????向高手请教!!!
?????? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询