#include #include using namespace std; #ifndef __SHAPE2D__ #define __SHAPE2D__ class Shape { unsigned int color; protected: unsigned char borderWidth; public: Shape(unsigned int c, unsigned char bw); Shape(unsigned char red, unsigned char blue, unsigned char green, unsigned char bw); void setColor(unsigned int c); void setColor(unsigned char red, unsigned char blue, unsigned char green); unsigned int getColor(); unsigned char getBorderWidth(); void setBorderWidth(unsigned char bw); virtual unsigned int getArea() = 0; }; void Shape::setColor(unsigned int c) { color = c; } void Shape::setColor(unsigned char red, unsigned char blue, unsigned char green) { color = red; color <<= 8; color |= blue; color <<= 8; color |= green; } unsigned int Shape::getColor() { return color; } Shape::Shape(unsigned int c, unsigned char bw) : color(c), borderWidth(bw) {} Shape::Shape(unsigned char red, unsigned char blue, unsigned char green, unsigned char bw) : borderWidth(bw) { setColor(red, blue, green); } unsigned char Shape::getBorderWidth() { return borderWidth; } void Shape::setBorderWidth(unsigned char bw) { borderWidth = bw; } #endif