我的C++有點生疏,在Java和C#中工作了半年。我有一個愚蠢的小錯誤,我無法弄清楚。C++模板語法錯誤
我儘可能地減少了代碼。
#include <list>
template<class T> class Subscriber
{
virtual void published(T t) = 0;
};
template <class T> class PubSub
{
private:
std::list< Subscriber<T>* > subscribers;
public:
void publish(T t);
};
template<class T> void PubSub<T>::publish(T t)
{
for(std::list< Subscriber<T>* >::iterator i = subscribers.begin(); i != subscribers.end(); ++i)
i->published(t);
}
當我嘗試編譯此(通過在代碼文件這個頭文件),我收到以下錯誤:
../util/pubsub.h: In member function ‘void PubSub<T>::publish(T)’:
../util/pubsub.h:18: error: expected `;' before ‘i’
../util/pubsub.h:18: error: ‘i’ was not declared in this scope
缺少什麼我在這裏?
謝謝。完美工作。 – Andrew 2009-09-04 01:48:04