64,631
社区成员
发帖
与我相关
我的任务
分享
class StockObserver
{
char *PersonName;
int PersonAge;
public:
void SetName(char *pName);
char* GetName();
void SetAge(int i_age);
int GetAge();
void Update();
~StockObserver();
};
StockObserver::~StockObserver()
{
delete [] PersonName;
}
void StockObserver::Update()
{
cout<<this->GetName()<<"..."<<"关闭股票行情,继续工作!"<<endl;
}
//--------------------------------------------------------------//
class SecretaryObserver
{
list<StockObserver*> observers;
string S_action;
public:
void AttachObserver(StockObserver* observer);
void NodifyObserver();
void SetAction(string s_string);
string GetAction();
};
void SecretaryObserver::AttachObserver(StockObserver* observer)
{
observers.push_back(observer);
}
void SecretaryObserver::NodifyObserver()
{
list<StockObserver*>::iterator observers_i;
for (observers_i = observers.begin();observers_i != observers.end(); ++observers_i)
{
this->SecretaryAction();
observers_i.Update();//这里编译报错?如何修改?
}
}
void SecretaryObserver::SetAction(string s_string)
{
S_action = s_string;
}
string SecretaryObserver::GetAction()
{
cout<<S_action<<endl;
return S_action;
}
//--------------------------------------------------------------//
void
main()
{
SecretaryObserver *LiQ = new SecretaryObserver();
StockObserver *LJ= new StockObserver();
StockObserver *MYG= new StockObserver();
Lijian->SetName("LJ");
MaoYongGang->SetName("MYG");
LiQ->AttachObserver(LJ);
LiQ->AttachObserver(MYG);
LiQ->SetAction("do some actions");
LiQ->NodifyObserver();
delete LiQ;
delete LJ;
delete MYG;
}
(*observers_i)->Update();
or
(*(*observers_i)).Update();