d的插件模板当小构,类似继承,而且可以直接用名字
mixin template F(){
int x;
int z;
void foo() {}
}
//这样插件,就可以替代`alias this`部分构了.
//这样,把F当作域(小构),类似,继承了一个`F`构
struct S
{
mixin F;
}
struct T
{
void foo2() {};
int y;
mixin F;
//mixin F;
}
import core.stdc.stdio;
extern(C):
void main()
{//
T t;
t.foo(); //->t.s.foo();
t.x = 5; //->t.s.x = 5;
//S s = t; //->S s = t.s;
printf("%i %i",S.sizeof,T.sizeof);
}
而c++直接继承就行了,反正有多继承.别人都说糟糕,其实,有时要用时,真的很方便.多继承有啥不好?
不就是名字冲突吗,另外取一个不就行了,难得很吗?
这里模板插件如果有模板参数,使用时,加上模板参数.
则类似,你c++继承了一个模板类.
是的,这是d的继承方法.不论如何,没有抄袭,有创新点,很不错.
毕竟,完成同样的任务,不同解决方法,都值得探讨嘛.
由此,可以得出betterC的功能是不弱于C++的.真的是非常强大.
浙公网安备 33010602011771号