Описание шаблона посетителя
Поэтому я прочитал всю документацию по шаблону «Посетитель», и я все еще в замешательстве. Я взял этот пример из другого SO вопроса, может кто-нибудь помочь мне понять? Например, когда мы используем шаблон дизайна посетителя? Я думаю, что я, возможно, кое-что понял, но я просто не могу видеть более широкую картину. Как я знаю, когда я могу использовать это?
<code>class equipmentVisited { virtual void accept(equipmentVisitor* visitor) = 0; } class floppyDisk : public equipmentVisited { virtual void accept(equipmentVisitor* visitor); } class processor : public equipmentVisited { virtual void accept(equipmentVisitor* visitor); } class computer : public equipmentVisited { virtual void accept(equipmentVisitor* visitor); } class equipmentVisitor { virtual void visitFloppyDisk(floppyDisk* ); virtual void visitProcessor(processor* ); virtual void visitComputer(computer* ); } // Some additional classes inheriting from equipmentVisitor would be here equipmentVisited* visited; equipmentVisitor* visitor; // Here you initialise visited and visitor in any convenient way visited->accept(visitor); </code>