铸造到指针矢量

时间:2017-12-07 10:54:46

标签: c++ vector casting

我有一个纯虚拟类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(); 
};

0 个答案:

没有答案