我正在使用 Android 中的 C++ 项目。我想要实现的是在 C++ 中进行异步调用,然后通过 JNI 将数据发送回。这是一个简单的概念证明,但这也意味着我的 C++ 知识有限。
我已经让所有功能都正常工作,但是想要使项目的 C++ 端“更好”,我想实现一个观察者模式。我将此用作教程: http: //www.codeproject.com/Articles/328365/Understanding-and-Implementing-Observer-Pattern-in
添加所有内容(修改到我的项目的ofc)后,我收到以下编译错误:模板参数2在ASubject.h中无效:
std::vector<PoCCplusplus*> list;
主题 h 和 cpp:
#pragma once
#include <vector>
#include <list>
#include <algorithm>
#include "PoCCplusplus.h"
class ASubject
{
//Lets keep a track of all the shops we have observing
std::vector<PoCCplusplus*> list;
public:
void Attach(PoCCplusplus *cws);
void Detach(PoCCplusplus *cws);
void Notify(char *xml);
};
#include "ASubject.h"
using namespace std;
void ASubject::Attach(PoCCplusplus *cws)
{
list.push_back(cws);
}
void ASubject::Detach(PoCCplusplus *cws)
{
list.erase(std::remove(list.begin(), list.end(), cws), list.end());
}
void ASubject::Notify(char *xml)
{
for(vector<PoCCplusplus*>::const_iterator iter = list.begin(); iter != list.end(); ++iter)
{
if(*iter != 0)
{
(*iter)->Update(xml);
}
}
}
这可能是我想念的非常简单的事情,但我找不到解决方案。