1. observer pattern
http://en.wikipedia.org/wiki/Observer_pattern
2. static member
http://blog.naver.com/izumi4ever?Redirect=Log&logNo=130020467962
// test3.h
#ifndef _TEST3_H_
#define _TEST3_H_
#include <stdio.h>
class Observer
{
public:
static int m_counter;
public:
Observer()
{
}
~Observer(){};
void Update()
{
m_counter += 1;
}
int Counter()
{
return m_counter;
}
};
int Observer::m_counter = 0;
class Subject
{
Observer m_observer;
int counter;
public:
Subject()
{
counter = 0;
}
~Subject(){};
void RegisterObserver(Observer observer)
{
m_observer = observer;
}
void UnregisterObserver(Observer observer)
{
m_observer = observer;
}
void NotifyObserver()
{
m_observer.Update();
}
void Operate()
{
for(counter = 0; counter < 26; counter++)
{
if(counter % 5 == 0)
{
NotifyObserver();
}
}
}
};
#endif // _TEST3_H_
// test3.cpp
#include "test3.h"
int main()
{
Subject mySubject;
Observer myObserver1;
mySubject.RegisterObserver(myObserver1);
mySubject.Operate();
printf("count = %d\n", myObserver1.Counter());
return 1;
}
'Papers > programming' 카테고리의 다른 글
CLASS vs. STRUCT (0) | 2007.09.23 |
---|---|
상속관계에서의 생성자정의 (0) | 2007.09.23 |
class definition & reference (0) | 2007.09.22 |
include header files (0) | 2007.09.13 |
virtual function (0) | 2007.08.06 |