對於有多個參數的構造函數參數多...隱式轉換
例如:
class C {
public:
C(int a=1, int b=2){ cout << a << ", " << b << "\n"; }
}
int main(){
C a(10), b = 20;
}
output:
10, 2
20, 2
如何我只是將值分配給第二個參數?所以我可以在不知道默認值的情況下得到「1,20」?或者是,我必須始終賦予前面我可以使用參數之前的論點的價值?
而我該如何隱式分配所有參數?如果我不能這樣做,爲什麼?對於上面的例子(因爲我是C++的新手),我曾經認爲我會得到「10,20」作爲輸出。
「C_a(int a):a(a){}」中的「a(a)」意味着將「a」的值傳遞給C_members中的變量「a」嗎? – yeeen
不,'a(a)'的意思是「把*參數*的值'a'和構造我的* member *'a'」。這就是通常對傳遞值進行初始化的方式(至少,我喜歡這樣做)。 – bitmask
我改變了一些變量名,所以更明顯的是發生了什麼。 – bitmask