/* */

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ả:

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: Chú ý: Ở đây, thành viên width và height được khai báo protected thay vì…

User Rating: 5 ( 1 votes)

About ngoton

Ngô Tôn is a programmer. He is crazy about new gadgets and up to date with latest technology trends. Use comments to notify any issues you are facing.

Check Also

Xây dựng một lớp Time mô tả thông tin về giờ, phút giây

Yêu cầu: Xây dựng một lớp Time mô tả thông tin về giờ, phút giây. …

Leave a Reply

Your email address will not be published. Required fields are marked *