Why is this array initialization legal? The array type is Part. Granted, the components inside the brackets are of the correct types for a Part, but no Part has been constructed, and there is no 2-argument constructor for Part anyway.
Code:#include <iostream> #include <string> using namespace std; const int SIZE=5; struct Part { string partNo; double cost; }; int main() { Part parts[SIZE] = { {"X-101",7.50}, {"XY-2.04",4.75} }; cout << parts[0].partNo << endl; cout << parts[0].cost << endl; }