私の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
を私はここで何をしないのですか? (型名のstd ::リスト<加入*> ::イテレータ私= ...
ありがとうございました。完璧に働いた。 – Andrew