検討:
struct box
{
int array[3];
};
int main()
{
box a = {1};
}
上記が C++ で機能する場合、次の機能が機能しないのはなぜですか?
struct box
{
int simple_int;
};
int main()
{
box b = 2;
}
理由は何ですか?
検討:
struct box
{
int array[3];
};
int main()
{
box a = {1};
}
上記が C++ で機能する場合、次の機能が機能しないのはなぜですか?
struct box
{
int simple_int;
};
int main()
{
box b = 2;
}
理由は何ですか?
構文が間違っているため、機能しません。必要に応じて、暗黙のコンストラクターを使用して b = 2 のサポートを追加できます。
box b = {2}; // correct syntax with no constructor
または
struct box
{
// implicit constructor
box(int i) : i(i) {}
int i;
};
box b(2);
box c = 2;
または
struct box
{
explicit box(int i) : i(i) {}
int i;
};
box b(2);
box c = 2; // disallowed