これは私のショートコードです
class A {
public:
int x,y;
A(int a=0, int b=0) {
x=a;y=b;
}
};
int main() {
A t[2] = {9,3};
cout << t[0].x << " " << t[0].y << endl;
cout << t[1].x << " " << t[1].y << endl;
}
出力は次のとおりです。
9 0
3 0
コンストラクターにコメントすると:
9 3
0 0
私の質問は次のとおりです。なぜですか?つまり、コピー コンストラクター、1 つ、2 つのパラメーターを持つコンストラクター、(coma、equality、[]) 演算子ですが、2 つの整数を受け取ることができるコンパイラが生成するものはわかりません。 1 つのコンストラクターを作成し、それらを x,y に割り当てます。{99999999999999999999,3} を入れて、どのコンパイラが叫ぶかを確認することで、括弧内の数値をオーバーフローさせようとしましたが、オーバーフローのために const int を変換できないと表示されているので、変換である必要があると思いますが、どのように?