2013-01-22 43 views
4

我正在寫一些類,它會像在QT通常集合:如何在qt中編寫我自己的集合?

class MyCollection 
{ 
    MyElement & at(int) const; 
    MyElement & operator[](int) const; 
    int count() const; 
}; 

現在我要列舉我的新類QT的的foreach的所有元素。我該怎麼做才能做到這一點?

+0

你應該看看一些Qt的容器類的來源。例如,請參閱[QVector](http://qt.gitorious.org/qt/qt/blobs/4.8/src/corelib/tools/qvector.h)。 – sashoalm

+1

閱讀Q_FOREACH宏,添加迭代器,開始,結束,運算符等,直到它編譯。如果有疑問,請遵循STL容器設計指南,而不是Qt特定的,這使容器更具普遍性。 –

回答

2

QT(4.8至少)使用(從foreach宏)模板包裝類QForeachContainer(見qglobal.h)遍歷不便。默認實現調用begin()/end(),但你可以編寫自己的專業化,以及...或者只是實現iterator begin()iterator end()成員

+0

和STL一樣嗎?有沒有完整的指南? – Arenim

+0

嗯,我已經實現了它,它完美的工作! – Arenim