© 2014 Firstsoft Technologies (P) Limited. login
Hi 'Guest'
Home SiteMap Contact Us Disclaimer
enggedu
Quick Links
Easy Studies

Home Lab Exercise Object Oriented Programming Lab Exercise Programs CPP Program To Implement Virtual Functions▼


CPP Program To Implement Virtual Functions

Alogarithm steps:

  1. Start the program
  2. Create the base class and declare the data member under protected access specifier and declare the function
  3. Create the derived class and access the base class data members in the derived class
  4. Create the object for derived class
  5. Call the public member function of the derived class
  6. Compile and run the program

CPP Program To Implement Virtual Functions

#include #include #include class Shape { double width; double height; char name[20]; public: Shape() { width = height = 0.0; strcpy(name, "unknown"); } Shape(double w, double h, char *n) { width = w; height = h; strcpy(name, n); } Shape(double x, char *n) { width = height = x; strcpy(name, n); } void display() { cout << "Width and height are " << width << " and " << height << "\n"; } double getWidth() { return width; } double getHeight() { return height; } void setWidth(double w) { width = w; } void setHeight(double h) { height = h; } char *getName() { return name; } virtual double area() = 0; }; class Triangle : public Shape { char style[20]; public: Triangle() { strcpy(style, "unknown"); } Triangle(char *str, double w, double h) : Shape(w, h, "triangle") { strcpy(style, str); } Triangle(double x) : Shape(x, "triangle") { strcpy(style, "isosceles"); } double area() { return getWidth() * getHeight() / 2; } void showStyle() { cout << "Triangle is " << style << "\n"; } }; class Rectangle : public Shape { public: Rectangle(double w, double h) : Shape(w, h, "rectangle") { } Rectangle(double x) : Shape(x, "rectangle") { } bool isSquare() { if(getWidth() == getHeight()) return true; return false; } double area() { return getWidth() * getHeight(); } }; int main() { Shape *shapes[4]; shapes[0] = &Triangle("right", 8.0, 12.0); shapes[1] = &Rectangle(10); shapes[2] = &Rectangle(10, 4); shapes[3] = &Triangle(7.0); for(int i=0; i < 4; i++) { cout << "object is " << shapes[i]->getName() << "\n"; cout << "Area is " << shapes[i]->area() << "\n\n"; } return 0; }

SAMPLE INPUT AND OUTPUT:

object is:triangle

Area is:48

object is:rectangle

Area is:100

object is:rectangle

Area is:40

object is:triangle

Area is:24.5

 
SLogix Student Projects

⇓Student Projects⇓
⇑Student Projects⇑
bottom