www.pudn.com > Mydesign.rar > Handle.cpp
//Handle.cpp #include "Handle.h" #includeusing namespace std; Handle::Handle() { _succ = 0; } Handle::~Handle() { delete _succ; } Handle::Handle(Handle* succ) { this->_succ = succ; } void Handle::SetSuccessor(Handle* succ) { _succ = succ; } Handle* Handle::GetSuccessor() { return _succ; } void Handle::HandleRequest() { } ConcreteHandleA::ConcreteHandleA() { } ConcreteHandleA::ConcreteHandleA(Handle* succ):Handle(succ) { } ConcreteHandleA::~ConcreteHandleA() { } void ConcreteHandleA::HandleRequest() { if (this->GetSuccessor() != 0) { cout<<"ConcreteHandleA 我把处理权给后继节点....." < GetSuccessor()->HandleRequest(); } else { cout<<"ConcreteHandleA 没有后继了,我必须自己处理...." < GetSuccessor() != 0) { cout<<"ConcreteHandleB 我把处理权给后继节点....." < GetSuccessor()->HandleRequest(); } else { cout<<"ConcreteHandleB 没有后继了,我必须自己处理...." <