2010-05-26 57 views
1

我有一些抽象类叫IClass(具有纯虚函数)。有一些类继承IClassCFirst,CSecond。 我想补充的,其继承到提振类物体:: ptr_vector如何建立提升foreach循环

class IClass { virtual void someFunc() = 0; }; 
class CFirst : public IClass { }; 
class CSecond : public IClass { }; 

boost::ptr_vector<IClass> objectsList; 

objectsList.push_back(new CFirst()); 
objectsList.push_back(new CSecond()); 

现在我的目标是调用函数的所有对象objectsList(在的iCLASS declarated)。我宁愿使用BOOST_FOREACH

foreach(IClass tempObj, objectsList) 
{ 
    tempObj.someFunc(); 
} 

的问题是,的iCLASS - 抽象类,所以我不能让这样的先例对foreach循环。我该怎么办?

回答

1

使用参考IClass代替:

foreach(IClass& tempObj, objectsList) 
{ 
    tempObj.someFunc(); 
}