Would anyone mind translating this code for me?
The code was extracted from the book design patterns
And i want to port it to Linux and it is based on Subject : Observer model
class Subject;
class Observer {
public:
virtual ~Observer();
virtual void Update (Subject* theChangedSubject) = 0;
protected:
Observer();
};
class Subject {
public:
virtual ~Subject();
virtual void Attach (Observer *);
virtual void Detach (Observer *);
virtual void Notify();
protected:
Subject();
private:
List<Observer *> *_observers;
};
void Subject::Attach (Observer *o)
{
_observers->Append(o); // I used push_back(o); here
// but Segmentation Fault
}
void Subject:
etach (Observer *o)
{
_observers->Remove(o); // I used remove(o) here
}
void Subject::Notify()
{
ListIterator<Observer *> i(_observers);
// in Linux C++, ListIterator doesn't exist
for (i.First(); !i.IsDone(); i.Next()) {
i.CurrentItem()->Update(this);
}
}
..... and so on so forth.
Thanks
Jack