Comment on Grim C++ Tales from the Crypt: The Visitor Pattern (2017)parentComments−scroot7yI don't know about the limitations of C++, but something like what you describe would happen in Smalltalk. Take for example a Canvas object and a bunch of different shape objects (square, circle, etc): "Square class" drawOn: aCanvas aCanvas line: (some point) to: (some point). "etc" "Triangle class" drawOn: aCanvas aCanvas line: self leftVertex to: self rightVertex. "etc" "Canvas class" drawShapes: aCollection aCollection do: [ :shape | shape drawOn: self ]
Comments
I don't know about the limitations of C++, but something like what you describe would happen in Smalltalk. Take for example a Canvas object and a bunch of different shape objects (square, circle, etc):