【发布时间】:2011-04-04 18:30:33
【问题描述】:
今天我一直在使用 Boost::shared_ptr,我有一个问题。
vector<shared_ptr<KlasaA> > vec;
vec.push_back(shared_ptr<KlasaA>(new KlasaB));
vec.push_back(shared_ptr<KlasaA>(new KlasaC));
vec.push_back(shared_ptr<KlasaA>(new KlasaC));
vec.push_back(shared_ptr<KlasaA>(new KlasaA));
for (vector<shared_ptr<KlasaA> >::const_iterator c_it = vec.begin();
c_it != vec.end(); ++c_it)
{
cout << c_it->get()->foo(10) << endl;
}
上面的循环通过一个向量并多态调用foo(10)。
我的问题是:
可以...
for (vector<shared_ptr<KlasaA> >::const_iterator c_it = vec.begin();
c_it != vec.end(); ++c_it)
和
cout << c_it->get()->foo(10) << endl;
用更简洁的方式表达?提前致谢。
【问题讨论】:
标签: c++ boost shared-ptr smart-pointers