class Device{
private:
char name[15];
int length;
int height;
int width;
int statePower; //1 - on; 0 - off
int stateWorking;//1 - works fine; 0 - is broken
int numberExtras;
struct parts {
char name[15];
int quantity;
char dealer[15];
};
parts *part;
public:
Device(){
cout << "CONSTRUCTOR W/O ARGs:\n";
cout << "Name: "; cin >> name;
cout << "Length: "; cin >> length;
cout << "Height: "; cin >> height;
cout << "Width: "; cin >> width;
cout << "Powered or not? (0/1): "; cin >> statePower;
cout << "Does it work? (0/1): "; cin >> stateWorking;
cout << "How many extra parts does it have? : "; cin >> numberExtras;
part = new parts[numberExtras];
for (int i(0); i < numberExtras; i++) {
cout << i+1 << ".\n";
cout << "Name: "; cin >> part[i].name;
cout << "Quantity: "; cin >> part[i].quantity;
cout << "Dealer: "; cin >> part[i].dealer;
}
};
Device(char* n, int l, int h, int w, int sP, int sW, int num, char* pN, int pQ, char* pD) {
strcpy(name, n);
length = l;
height = h;
width = w;
statePower = sP;
stateWorking = sW;
numberExtras = num;
part = new parts[numberExtras];
strcpy(part[0].name, pN);
part[0].quantity = pQ;
strcpy(part[0].dealer, pD);
};
void showData(){
cout << "\nName: " << name;
cout << "\nLength: " << length;
cout << "\nHeight: " << height;
cout << "\nWidth: " << width;
if (statePower == 1) { cout << "\nPowered"; }
else { cout << "\nNot powered"; };
if (stateWorking == 1) { cout << "\nWorks fine\n"; }
else { cout << "\nIs broken :(\n"; };
cout << "Number of extras: " << numberExtras << endl;
for (int i(0); i < numberExtras; i++) {
cout << i + 1 << ".\n";
cout << "Name: " << part[i].name;
cout << "\nQuantity: " << part[i].quantity;
cout << "\nDealer: " << part[i].dealer << endl;
}
}
~Device(){
delete[]part;
cout << "Destructed.\n";
};
};
int main()
{
Device device1;
cout << "\n\nInfo for constructed W/O ARGs:\n";
device1.showData();
system("pause");
Device device2("Ruler", 200, 30, 20, 0, 1, 1, "grip", 1, "Hongjou inc.");
cout << "\n\nInfo for constructed WITH ARGs:\n";
device2.showData();
system("pause");
return 0;
}
Comments