什麼事都自己來!
如果不屑使用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就可以了。