c++ - 函数不接受 1 个参数 - 观察者/模式
问题描述
我是 C++ 编程的新手,现在面临这个“简单”问题一段时间。我正在使用以下类实现观察者模式的一个简单步骤:观察者和观察者。
#ifndef OBSERVER_H
#define OBSERVER_H
#include "observable.h"
class Observer{
public:
virtual ~Observer() = default;
virtual void update(Observable* obs ) = 0;
};
#endif // OBSERVER_H
Observabel 类看起来像这样:
#ifndef OBSERVABLE_H
#define OBSERVABLE_H
#include <vector>
#include "observer.h"
class Observable
{
public:
Observable();
virtual ~Observable() = default;
void attach(Observer &o);
void detach(Observer &o);
void notify();
private:
std::vector<Observer*> observerlist;
};
#endif // OBSERVABLE_H
c++- 文件
#include "observable.h"
#include <algorithm>
void Observable::attach(Observer &o) { observerlist.push_back(&o); }
void Observable::detach(Observer &o)
{
observerlist.erase(std::remove(observerlist.begin(), observerlist.end(), &o));
}
void Observable::notify()
{
for (Observer* obs : observerlist) {
obs->update(this); // Here the IDE Shows the Error
}
}
错误:
C:\U...\observable.cpp:16: error: C2660: "Observer::update": function does not take 1 Argument
我真的希望你们中的一个可以提供帮助。
问候
解决方案
推荐阅读
- python - 画布上的 Tkinter ttk.Scrollbar 滚动正常,但滚动条小部件显示不正确?
- c++ - 我该如何解决这个问题?错误:找不到库 -lmysqlclient
- python - 如何阻止程序添加文件中已存在的对象?
- python - 如何在 Pygame 中减慢 Sprite FPS?
- ruby - 自动配置:找不到命令
- html - 样式 A 的第一个实例
- 仅元素,不从第二个实例中物理删除样式(并且不添加类或 ID)
- javascript - React Redux- Store 更新前超时
- java - 如何使用 Mockito 填充 POJO
- ruby-on-rails - 如何使用 RSpec Rails 4.0 测试具有特定 url 的 json 格式?
- java - Maven 无法将参数传递给 main