使用C++实现OO观察者模式

// test.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include 
#include 
#include 
using namespace std; 

class observerBase
{
public:
	virtual void answer(){};
};
class subjectBase
{
public:
	virtual void register_ob(observerBase *){};
	virtual void delete_ob(observerBase *){};
	virtual void ask(){};
};


class subjectS: public subjectBase
{
public:
    vector ob_list;
    void register_ob(observerBase *ob)
    {
       ob_list.push_back(ob);
       //cout<<"push back"<::iterator
         {
              (*i)->answer();
              //cout<<"answer"<register_ob(this);
         //cout << "reg"<delete_ob(this);
		 cout<<"devil said: I leave!"<register_ob(this);
         //cout << "reg"<delete_ob(this);
		 cout<<"angel said: I leave!"<register_ob(this);
         //cout << "reg"<delete_ob(this);
		 cout<<"man said : I left!"<leave((subjectBase *)&i);
	i.ask();
	cout<<"========================"<leave((subjectBase *)&i);
	i.ask();

	delete devil_inst;
	delete man_inst;
	delete angel_inst;
	return 0;
}


你可能感兴趣的:(VC)