我有一个纯虚拟类IObserver(观察者)的共享指针向量,该向量是一个继承IObserver的类。还有一个继承IObserver,HomeOwner的第二个类。我想将Homeowner对象转换为观察者向量,因此我可以将它们发送到SecurityStatus中的函数,但不确定我是如何进行的。我想在幕后而不是在主程序中这样做。两者的声明如下。 谢谢!
#pragma once
#include "IObserver.h"
#include "HouseSecurity.h"
#include "SensorInfo.h"
#include <vector>
#include <numeric>
#include <algorithm>
#include <string>
#include <iostream>
using namespace std;
// concrete observer
class HomeOwner : public IObserver{
SensorInfo currentSensorState;
string myName;
string myPhoneNumber;
string myEmail;
HouseSecurity &house;
public:
void Update();
void New();
HomeOwner(string, string, string);
};
#pragma once
#include "IObserver.h"
#include "HomeOwner.h"
#include <vector>
#include <numeric>
#include <algorithm>
#include <string>
#include <memory>
using namespace std;
// subject
class SecurityStatus{
vector <shared_ptr<IObserver>> observers;
public:
void AttachObserver(shared_ptr<IObserver>);
void DetachObserver(shared_ptr<IObserver>);
void NotifyObservers();
};