On 07/08/2012 07:31 PM, Namespace wrote:
How can i implement C++ behaviour like this:
class Shape : Drawable, Transformable {
class Sprite : Drawable {
class Image : Transformable {
?
One way is to declare Transformable or Drawable as interface.
But what if i have more then one class which implements
Transformable/Drawable and i wouldn't rewrite the implementation of
Transformable/Drawable in every class again?
Depending on what exactly your use case is, this might get you going:
class Shape : Drawable {
protected class MyTransformable : Transformable{
// ...
// (can reference all fields of the enclosing class object)
}
Transformable transformable;
alias transformable this;
this() { transformable = new MyTransformable(); }
// ...
}