#include #include #include using namespace std; enum eWingsColorType { PIGMENTARY, OPTICAL, COMBINATIONAL }; enum eTransformationState { EGG, LARVA, SHRYSALIS, IMAGO }; enum eGender { MALE, FEMALE }; class Batterfly { string wingsColor; //окраска крыльев float wingsSpan; //размах крыла eWingsColorType wingsColorType; //тип окраски крыльев eTransformationState transformationState; //стадия развития eGender gender; //пол public: Batterfly(string aWingsColor, float aWingsSpan) { wingsColor = aWingsColor; wingsSpan = aWingsSpan < 28 ? aWingsSpan : 28; transformationState = EGG; wingsColorType = (eWingsColorType) (rand() % 4); gender = (eGender) (rand() % 2); } Batterfly(string aWingsColor, float aWingsSpan, eWingsColorType aWingsColorType, eGender aGender) { wingsColor = aWingsColor; wingsSpan = aWingsSpan < 28 ? aWingsSpan : 28; wingsColorType = aWingsColorType; gender = aGender; } ~Batterfly() { cout << endl << "I am dead:("; } eWingsColorType getWingsColorType() const { return wingsColorType; } eGender getGender() const { return gender; } eTransformationState getTransformationState() const { return transformationState; } string getWingsColor() const { return wingsColor; } float getWingsSpan() const { return wingsSpan; } bool nextTransformationStep() { if (transformationState != IMAGO) { transformationState = (eTransformationState) (((int) transformationState) + 1); return true; } else return false; //дальше развиваться некуда } void fly(long seconds) { //... }; }; /* * */ int main(int argc, char** argv) { Batterfly b("red", 12.3); cout << b.getWingsColor(); return 0; }