关于D语言的函数和操作符重载:
1. 不需要声明虚函数,默认所有成员函数都为虚函数,编译器会自动优化;
2. 函数参数支持in, out, inout等修饰符;
3. 支持函数指针,不支持类成员函数指针,但是支持更方便的方式--委托(delegate)。
4. 支持丰富的操作符重载
下面是一些特性的演示代码。
1. 不需要声明虚函数,默认所有成员函数都为虚函数,编译器会自动优化;
2. 函数参数支持in, out, inout等修饰符;
3. 支持函数指针,不支持类成员函数指针,但是支持更方便的方式--委托(delegate)。
4. 支持丰富的操作符重载
下面是一些特性的演示代码。
import std.stdio;
void main()
{
tryFunction();
tryOperator();
}
// functions
// --------------------------------------
class MyBaseClass
{
void func(int a)
{
writefln("MyBaseClass.func");
}
final public void finalFunc()
{
writefln("MyBaseClass.finalFunc");
}
void overrideFunc()
{
writefln("MyBaseClass.overrideFunc");
}
}
class MySubClass : MyBaseClass
{
void func(int a) // 自动变为virtual
{
writefln("MySubClass.func");
}
void finalFunc() //???
void main()
{
tryFunction();
tryOperator();
}
// functions
// --------------------------------------
class MyBaseClass
{
void func(int a)
{
writefln("MyBaseClass.func");
}
final public void finalFunc()
{
writefln("MyBaseClass.finalFunc");
}
void overrideFunc()
{
writefln("MyBaseClass.overrideFunc");
}
}
class MySubClass : MyBaseClass
{
void func(int a) // 自动变为virtual
{
writefln("MySubClass.func");
}
void finalFunc() //???