Total members 11895 |It is currently Sat Dec 21, 2024 4:01 pm Login / Join Codemiles

Java

C/C++

PHP

C#

HTML

CSS

ASP

Javascript

JQuery

AJAX

XSD

Python

Matlab

R Scripts

Weka





Here ,we use virtual functions and polymorphism.

cpp code
#include <iostream> 
#include <cstring>
using namespace std;

class TwoDimensionShape {
double width;
double height;
char name[20];
public:

TwoDimensionShape() {
width = height = 0.0;
strcpy(name, "unknown");
}

TwoDimensionShape(double w, double h, char *n) {
width = w;
height = h;
strcpy(name, n);
}

TwoDimensionShape(double x, char *n) {
width = height = x;
strcpy(name, n);
}

void showDim() {
cout << "Width and height are " << width << " and " << height << endl;
}

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() {
cout << "Error: area() must be overridden.\n";
return 0.0;
}

};

class Triangle : public TwoDimensionShape {
char style[20]; // now private
public:

Triangle() {
strcpy(style, "unknown");
}

Triangle(char *str, double w,
double h) : TwoDimensionShape(w, h, "triangle") {
strcpy(style, str);
}

Triangle(double x) : TwoDimensionShape(x, "triangle") {
strcpy(style, "isosceles");
}

double area() {
return getWidth() * getHeight() / 2;
}

void showStyle() {
cout << "Triangle is " << style << endl;
}
};

class Rectangle : public TwoDimensionShape {
public:


Rectangle(double w, double h) : TwoDimensionShape(w, h, "rectangle") { }


Rectangle(double x) :
TwoDimensionShape(x, "rectangle") { }

bool isSquare() {
if(getWidth() == getHeight())
return true;
return false;
}

// This is another override of area().
double area() {
return getWidth() * getHeight();
}
};

int main() {

TwoDimensionShape *shapes[5];

shapes[0] = &Triangle("right", 8.0, 12.0);
shapes[1] = &Rectangle(10);
shapes[2] = &Rectangle(10, 4);
shapes[3] = &Triangle(7.0);
shapes[4] = &TwoDimensionShape(10, 20, "generic");

for(int i = 0; i < 5; i++) {
cout << "object is " << shapes[i]->getName() << endl;

cout << "Area is " << shapes[i]->area() << endl;

cout << endl;
}

return 0;
}




_________________
Please recommend my post if you found it helpful


Author:
Beginner
User avatar Posts: 95
Have thanks: 2 time
Post new topic Reply to topic  [ 1 post ] 

  Related Posts  to : polymorphism
 What is Polymorphism?!!     -  
 run time polymorphism     -  
 Inheritance & polymorphism checker code     -  



Topic Tags

C++ OOP






Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
All copyrights reserved to codemiles.com 2007-2011
mileX v1.0 designed by codemiles team
Codemiles.com is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to Amazon.com