Without multiples inheritance, how is this done?
Jack
jckj33 at gmail.com
Sat May 8 18:33:35 UTC 2021
let's say I have:
```d
class Base
{
int f()
{
doSomething();
return n * 5;
}
void doSomething() { }
}
class Foo : Base
{
void myMethod() { /* ... */ }
}
class Baa : Base
{
void myMethod2() { /* ... */ }
}
```
then I'd like to make a extended version(making those DRY
routines a class itself) of Foo and Baa, like this:
```d
abstract class DRY : Base
{
this(int n)
{
this.n = n;
}
override int f()
{
super.doSomething();
return n;
}
private int n;
}
```
but the class ExtendFoo and ExtendedBaa must inherit from Foo
and Baa, respectively. But how can I make it inherit the routines
from DRY class too without multiples inheritance? in C++ I'd just
do:
```d
class ExtendedFoo : DRY, Base { /* ... */ }
class ExtendBaa : DRY, Base { /* ... */ }
```
More information about the Digitalmars-d-learn
mailing list