Compare commits
6 commits
a7e77c5307
...
30ffd90b2a
Author | SHA1 | Date | |
---|---|---|---|
Bruno BELANYI | 30ffd90b2a | ||
Bruno BELANYI | 70f99f21fa | ||
Bruno BELANYI | cb9545769d | ||
Bruno BELANYI | ab2fd4bb69 | ||
Bruno BELANYI | 80ef143ef2 | ||
Bruno BELANYI | 1f65d803a7 |
|
@ -189,16 +189,6 @@ e.g: compilers, where the AST class hierarchy represents the data *only*, and
|
||||||
all compiler stages and optimization passes are programmed by a series of
|
all compiler stages and optimization passes are programmed by a series of
|
||||||
visitors.
|
visitors.
|
||||||
|
|
||||||
One downside of this approach is that if you want to add `SpaceStation` as
|
|
||||||
a sub-class of `SpaceObject`, and handle its collisions with other
|
|
||||||
`SpaceObject`s, you need to:
|
|
||||||
|
|
||||||
* Implement all `collide_with` methods for this new class.
|
|
||||||
* Add a new virtual method `collide_with(SpaceStation&)` and implement it on
|
|
||||||
every sub-class.
|
|
||||||
|
|
||||||
This can be inconvenient if your class hierarchy changes often.
|
|
||||||
|
|
||||||
## Multiple dispatch on a closed class hierarchy
|
## Multiple dispatch on a closed class hierarchy
|
||||||
|
|
||||||
When even double dispatch is not enough, there is a way to do multiple dispatch
|
When even double dispatch is not enough, there is a way to do multiple dispatch
|
||||||
|
|
Loading…
Reference in a new issue