Hi, I am

Ngô Tôn

I am a programmer.

Home / Programming / C/C++ / Xây dựng lớp tam giác và hình chữ nhật kế thừa từ đa giác

Xây dựng lớp tam giác và hình chữ nhật kế thừa từ đa giác

Yêu cầu:

Chúng ta cần xây dựng các lớp mô tả đa giác : hình chữ nhật và tam giác. Hai đa giác này có đặc điểm cơ bản, như là chiều rộng và chiều cao để tính diện tích. Do vậy, ta có thể xây dựng 1 lớp đa giác (polygons) gồm các thành viên: width và height. Ta sẽ tạo ra 2 lớp dẫn xuất: lớp tam giác (CTriangle) và lớp hình chữ nhật (CRectangle) kế thừa từ lớp đa giác (CPolygon).

Code:
/************************************************************/

#include <iostream>
using namespace std;

class CPolygon
{
protected:
int width, height;
public:
void set_values (int a, int b)
{ width=a; height=b;}
};

class CRectangle: public CPolygon
{
public:
int area () { return width * height; }
};

class CTriangle: public CPolygon
{
public:
int area () { return width * height / 2; }
};

int main () {
CRectangle rect;
CTriangle trgl;
rect.set_values (4,5);
trgl.set_values (4,5);
cout << "Area of rectangle: " << rect.area() << endl;
cout << "Area of triangle: " << trgl.area() << endl;

system("pause");
return 0;
}

Chú ý:

Ở đây, thành viên width và height được khai báo protected thay vì private. Vì thành viên của lớp dẫn xuất chỉ có thể truy cập được thành viên public và protected của lớp cơ sở.
Trong ví dụ này, thành viên của lớp CRectangle và CTriangle có cùng quyền truy cập như trong lớp cơ cở CPolygon.

CPolygon::width // protected access
CRectangle::width // protected access

CPolygon::set_values() // public access
CRectangle::set_values() // public access

Đó là bởi vì, trong ví dụ này ta dùng kiểu kế thừa public.

class Rectangle: public Polygon { /* ... */ }

Kết quả:

About ngoton

Ngô Tôn is a programmer with passion for tailored software solutions. Comes with 7+ years of IT experience, to execute beautiful front-end experiences with secure and robust back-end solutions.

Check Also

Xây dựng hàm bạn để tính diện tích hình chữ nhật

Yêu cầu: Xây dựng hàm bạn để tính diện tích hình chữ nhật Code: Giải …

Leave a Reply

avatar
  Subscribe  
Notify of