Visitorパターンは、訪問側(visitor)を受け入れ側(acceptor)が受け入れ(accept)、その結果訪問側の処理を受け入れ側の中で実行するような構造。
13.Visitor パターン | TECHSCORE(テックスコア)
main.cppで、
visitor側に走査する処理があるが、それをやるにはcontainerがacceptしないといけない。
$ vi main.cpp $ g++ -o main main.cpp content.cpp container.cpp container_visitor.cpp $ ./main <subsubcontent> added! <subsubcontainer> added! <subcontent> added! <subcontainer> added! container_visitor(container): <container> container_visitor(content): <subcontent> container_visitor(container): <subcontainer> container_visitor(content): <subsubcontent> container_visitor(container): <subsubcontainer> <subcontent> content removed! <subsubcontent> content removed! <subsubcontainer> container removed! <subcontainer> container removed! <container> container removed! $
container_visitor側の処理が行われている。
Sample/designpattern/visitor/visitor/src/visitor at master · bg1bgst333/Sample · GitHub