我遇到一些麻煩了解如何處理構造的模糊性D.曖昧結構構造在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和8aivec
有數據值5和3.
這意味着afvec
調用this(float c)
正如語法所預期的那樣。
但是aivec
已完成類似於aivec.a = 5
的分配。
我推斷此發現,以下內容在上面是合法的:aivec = mydta(5, 4);
分別給出aivec
值5和4。
任何想法如何繞過這種隱式初始化,所以我可以訪問我的構造函數:this(int c)
?
float也可以是5,所以它不知道使用哪個構造函數。嘗試添加一個演員到他們中的一個。 – Kevin 2011-05-31 07:44:27
這不是問題,問題是如果我使用int,它會調用一些隱式初始化,而不是我希望調用的this(int c)'構造函數。 – dcousens 2011-05-31 07:48:24