2010-05-26 52 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(); 
}