gpt4 book ai didi

C++模板语法错误

转载 作者:太空狗 更新时间:2023-10-29 23:26:08 24 4
gpt4 key购买 nike

我的 C++ 在过去六年中一直使用 Java 和 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

我在这里错过了什么?

最佳答案

for( typename std::list< Subscriber<T>* >::iterator i = ...
^^^^^^^^

关于C++模板语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1376792/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com