ClassArguments – это ключевое слово class
, за которым следуют аргументы конструктора. DeclDefs — это объявления внутри класса.
Этот синтаксис предназначен для создания экземпляра анонимного вложенного класса, например.
import std.stdio;
void main() {
class K {
this() { writeln("K.__ctor"); }
}
auto f = new class (1, "4", 7.0) K {
this(int a, string b, double c) {
super();
writefln("anon.__ctor: %s %s %s", a, b, c);
}
};
}
(См. http://ideone.com/cA1qo.)
Вышеизложенное можно переписать в менее понятной форме
import std.stdio;
void main() {
class K {
this() { writeln("K.__ctor"); }
}
class AnonymousClass : K {
this(int a, string b, double c) {
super();
writefln("anon.__ctor: %s %s %s", a, b, c);
}
}
auto f = new AnonymousClass(1, "4", 7.0);
}
person
kennytm
schedule
01.05.2011