Nicholas Clark wrote: > I think that the first syntax > > class Car::Q is Car renames(eject => ejector_seat) > is CD_Player renames(drive => cd_drive); > > makes it more clear that I'd like to pick and choose which methods > the composite object gets from which parent.
But now you've turned composition back into inheritance, and I think it's important to be able to distinguish between the two. The car is definately not a CD player, it just has one. I think we need a more flexible syntax for specifying how interfaces should be constructed in the case of composed objects, rather than turning composition into inheritance to avoid the problem. A