我在理解如何处理 D 中构造函数的歧义时遇到了一些麻烦。
struct mydta {
int a = 2;
int b = 3;
this(int c) {
a = c / 2;
b = c * 2;
}
this(float c) {
a = cast(int) c / 2;
b = cast(int) c * 2;
}
static mydta afvec = mydta(4.3);
static mydta aivec = mydta(5);
}
afvec
具有数据值 2 和 8。aivec
具有数据值 5 和 3。
这意味着从语法中按预期afvec
调用。this(float c)
但是aivec
做了一个类似的任务aivec.a = 5
。
我对此进行推断,发现上述内容是合法的:分别aivec = mydta(5, 4);
给出aivec
值 5 和 4。
任何想法如何绕过这个隐式初始化,以便我可以访问我的构造函数:this(int c)
?