Structure's inheritance
Namespace
rswhite4 at googlemail.com
Sun May 12 04:54:42 PDT 2013
On Sunday, 12 May 2013 at 11:21:16 UTC, Temtaime wrote:
> Hello to all !
> I'm surprised that there is no structure's inheritance.
>
> There is a problem:
> I want to make Matrix MxN class. I also want to make child
> classes Square Matrix and Vector from it with additional
> functions.
> I don't want use "class" cause of "new" overhead. Std
> typecons's Scoped - workaround with many restrictions, so it
> isn't true solution.
>
> I'm tried mixin template but there is no luck. I don't know how
> to declare multiplication operator for example.
>
> Any suggestions ?
> Regards.
You could make the base struct a member of the child struct and
refer with alias this Base; to the base:
[code]
import std.stdio;
struct A {
public:
int id;
}
struct B {
public:
A hidden_a;
alias hidden_a this;
int age;
this(int id, int age) {
this.age = age;
this.id = id;
}
}
void main() {
B b = B(42, 23);
writefln("Person #%d is %d years old.", b.id, b.age);
}
[/code]
More information about the Digitalmars-d-learn
mailing list