什麼事都自己來!
如果不屑使用STL裡的for_each的話,沒關係,我們可以自己寫!雖然比較麻煩,但是可以為自己的class量身打造就是..
程式碼如同之前的,我們來做個Show學生的ID,先在CClass裡面加上:
public:
typedef void (*FOR_EACH)(CStudent student);
void ForEach(FOR_EACH pFun)
{
std::vector<CStudent>::iterator it = m_students.begin();
for (; it != m_students.end(); ++it)
(*pFun)((*it));
}然後再隨便一處加上:
void ShowID(CStudent student)
{
student.Show();
}要使用的時候只要:
class01.ForEach(ShowID);
就可以了,感覺比上一個方法簡潔多了,如果想要Show其他的資料,只要再做個ShowOther,然後再放到ForEach就可以了。