标签:
目的
class Equipment{public:virtual void accept(Visitor* v) = 0;};
class FloppyDisk : public Equipment{public:virtual void accept(Visitor* v);};void FlopyyDisk::accept(Visitor* v){v->visit(this);}
class Chassis : public Equipment{public:virtual void accept(Visitor* v);private:std::vector<Equipment*> m_parts;};void Chassis::accept(Visitor* v){for(int i = 0; i < m_parts.size(); ++i)m_parts[i]->accept(v);v->visit(this);}
class Visitor{public:virtual void visit(FloppyDisk* floppyDisk) = 0;virtual void visit(Chassis* chassis) = 0;};
标签:
原文地址:http://blog.csdn.net/harrising/article/details/38149915