Abstract classes
Abstract classes
abstract class is a class that is designed to be specifically used as a base class.
abstract class contains at least one pure virtual function. You declare a pure virtual function
by using a pure specifier (= 0) in the declaration of a virtual member function in the class declaration
abstract class contains at least one pure virtual function. You declare a pure virtual function
by using a pure specifier (= 0) in the declaration of a virtual member function in the class declaration
class Box {
public:
// pure virtual function
virtual double getVolume() = 0;
private:
double length; // Length of a box
double breadth; // Breadth of a box
double height; // Height of a box
};
Abstract Class Example
Consider the following example where parent class provides an interface to the base class to implement a function called getArea() −
#include <iostream.h>
using namespace std;
// Base class
class Shape {
public:
// pure virtual function providing interface framework.
virtual int getArea() = 0;
void setWidth(int w) {
width = w;
}
void setHeight(int h) {
height = h;
}
protected:
int width;
int height;
};
// Derived classes
class Rectangle: public Shape {
public:
int getArea() {
return (width * height);
}
};
class Triangle: public Shape {
public:
int getArea() {
return (width * height)/2;
}
};
int main(void) {
Rectangle Rect;
Triangle Tri;
Rect.setWidth(5);
Rect.setHeight(7);
// Print the area of the object.
cout << "Total Rectangle area: " << Rect.getArea() << endl;
Tri.setWidth(5);
Tri.setHeight(7);
// Print the area of the object.
cout << "Total Triangle area: " << Tri.getArea() << endl;
return 0;
}
Output
Total Rectangle area: 35
Total Triangle area: 17
<< PREVIEW >>
<< NEXT >>
Comments
Post a Comment