#include <iostream>
using namespace std;
class Shape {
protected:
int width, height;
public:
Shape(int a = 0, int b = 0) {
width = a;
height = b;
}
int area() {
cout << "Parent class area :" << endl;
return 0;
}
};
class Rectangle : public Shape {
public:
Rectangle(int a = 0, int b = 0) :Shape(a, b) { }
int area() {
cout << "Rectangle class area :" << endl;
return (width * height);
}
};
class Triangle : public Shape{
public:
Triangle(int a = 0, int b = 0) :Shape(a, b) { }
int area() {
cout << "Triangle class area :" << endl;
return (width * height / 2);
}
};
// Main function for the program
int main() {
Shape *shape;
Rectangle rec(10, 7);
Triangle tri(10, 5);
// store the address of Rectangle
shape = &rec;
// call rectangle area.
shape->area();
// store the address of Triangle
shape = &tri;
// call triangle area.
shape->area();
return 0;
}
--------------------------------------------
#include <iostream>
using namespace std;
class Shape {
protected:
int width, height;
public:
Shape(int a = 0, int b = 0) {
width = a;
height = b;
}
virtual int area() {
cout << "Parent class area :" << endl;
return 0;
}
};
class Rectangle : public Shape {
public:
Rectangle(int a = 0, int b = 0) :Shape(a, b) { }
int area() {
cout << "Rectangle class area :" << endl;
return (width * height);
}
};
class Triangle : public Shape{
public:
Triangle(int a = 0, int b = 0) :Shape(a, b) { }
int area() {
cout << "Triangle class area :" << endl;
return (width * height / 2);
}
};
// Main function for the program
int main() {
Shape *shape;
Rectangle rec(10, 7);
Triangle tri(10, 5);
// store the address of Rectangle
shape = &rec;
// call rectangle area.
shape->area();
// store the address of Triangle
shape = &tri;
// call triangle area.
shape->area();
return 0;
}
'Programming > C,C++' 카테고리의 다른 글
STL list 예제 코드[펌] (0) | 2017.02.14 |
---|---|
Template 예제 (0) | 2017.01.24 |
class와 OOP 예제2 (0) | 2017.01.20 |
class와 OOP 예제 (0) | 2017.01.20 |
Callback 예제 코드 (0) | 2017.01.19 |