#include
#include
#include
#include
using namespace std;
class Door {
public:
void open() const {
cout << "open door horizontally" << endl;
}
void close() const {
cout << "close door horizontally" << endl;
}
virtual ~Door()
{
cout << " Door is delete " <<endl;
}
};
class DoorController {
protected:
vector _doorVec;
public:
void addDoor(Door aDoor) {
_doorVec.push_back(aDoor);
}
void openDoor() const {
for_each(_doorVec.begin(), _doorVec.end(), mem_fun_ref(&Door::open));
cout << "openDoor is end" <<endl;
}
virtual ~DoorController()
{
cout << "DoorController is delelte" <<endl;
}
};
int main()
{
DoorController dc;
Door doorc;
dc.addDoor(doorc);
dc.addDoor(doorc);
// dc.addDoor(Door());
// dc.addDoor(Door());
dc.openDoor();
}