// CIS 235 #include "pen.h" #include #include using std::ostream; using std::cin; using std::cout; using std::endl; pen::pen(const pen & other) : invent(other) // Member Initialization List { setColor(other.getColor()); } pen::pen() : invent() // Member Initialization List { setColor("Unknown"); } pen::pen(long cd, long n, double cst, double pr, const char * cl) : invent(cd,n,cst,pr) // Member Initialization List { setColor(cl); } pen::~pen(void) { cout << "Pen object leaving at address " << this << endl; } const pen& pen::print(ostream & o) const { invent::print(o); // use scoping to call inherited overridden method o << "Color: " << getColor() << endl; return *this; } pen & pen::kinput(void) { cout << "Enter data for a pen\n"; invent::kinput(); // use scoping to call inherited overridden method cout <<"Enter the pen color\n"; char work[10]; cin >> work; setColor(work); return *this; } const char * pen::getColor(void) const { return color; } pen & pen::setColor( const char * c) { strncpy_s(color,c,10); // safe strncpy function color[9] = '\0'; return *this; } string pen::identify(void) { return "pen"; }