1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài 3: Cơ bản về các lớp trong C++

36 48 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 36
Dung lượng 386 KB

Nội dung

• Cả hai cách tiếp cận đều thực hiện theo phương pháp tinh chỉnh từng bước (stepwise refinement) • Tiếp cận hướng thủ tục (function oriented): – Tập chung vào các hàm và việc phân rã các hàm – Các cấu trúc dữ liệu (ở mức ngôn ngữ lập trình) được định nghĩa sớm. – Các cấu trúc dữ liệu khó có thể thay đổi • Tiếp cận hướng đối tượng (Object Oriented) – Tập chung vào các đối tượng trừu tượng – Các cấu trúc dữ liệu trừu tượng được định nghĩa sớm – Cấu trúc dữ liệu chi tiết mức ngôn ngữ chưa được định nghĩa – Cấu trúc...

Bài Cơ lớp C++ I Lập trình hướng thủ tục hướng đối tượng • Cả hai cách tiếp cận thực theo phương pháp tinh chỉnh bước (stepwise refinement) • Tiếp cận hướng thủ tục (function oriented): – Tập chung vào hàm việc phân rã hàm – Các cấu trúc liệu (ở mức ngơn ngữ lập trình) định nghĩa sớm – Các cấu trúc liệu khó thay đổi • Tiếp cận hướng đối tượng (Object Oriented) – – – – Tập chung vào đối tượng trừu tượng Các cấu trúc liệu trừu tượng định nghĩa sớm Cấu trúc liệu chi tiết mức ngôn ngữ chưa định nghĩa Cấu trúc liệu dễ thay đổi Ví dụ • Bài tốn: Lập chương trình nhập vào tọa độ đỉnh tam giác mặt phẳng Tính diện tích chu vi tam giác In kết lên hình Tiếp cận hướng thủ tục • Xây dựng hàm – Định nghĩa cấu trúc liệu biểu diễn tam giác – Nhập liệu – Tính diện tích – Tính chu vi – Xây dựng hàm main() sử dụng hàm Định nghĩa cấu trúc liệu hàm typedef struct Tamgiac { float xA, yA, xB,yB, xC, yC;} void Nhap(Tamgiac &t) { coutt.xA>>t.yA; coutt.xB>>t.yB; coutt.xC>>t.yC; } Tiếp cận hướng đối tượng • Xây dựng lớp tam giác (code03002) class Tamgiac { float xA, yA, xB,yB, xC, yC; public: void Nhap(); float Dientich(); float Chuvi(); }; II Khái niệm lớp - Khai báo lớp - Lớp khái niệm mở rộng cấu trúc liệu, chứa đựng liệu hàm - Đối tượng (object) thể lớp Trong lập trình lớp xem kiểu liệu, đối tượng biến class class_name { access_specifier_1: member1; access_specifier_2: member2; }; - class_name : Tên lớp cần tạo - access_specifier : đặc tả truy nhập (private, protected, public) - member : khai báo thành phần lớp (có thể thuộc tính hàm thành viên) Ví dụ: Khai báo lớp biểu diễn hình chữ nhật phương thức đặt giá trị cho thuộc tính phương thức tính diện tích class CRectangle { int width, hieght; public: void set_values (int,int); int area (void); }; Ví dụ: Khai báo lớp biểu diễn ma trận với phương thức đặt số hàng, số cột, nhập phần tử in phần tử class CMatrix{ private: int rows, cols; float *element; public: void setColRow(int,int) void printMatrix(); void inputMatrix(); }; III Cài đặt phương thức  Ta cài đặt phương thức bên lớp bên ngồi lớp  Lưu ý: • Các phương thức khơng chứa vịng lặp phép cài đặt lớp • Thơng thường ta cài đặt phương thức bên lớp Cài đặt phương thức bên lớp DataType class_Name::Func_Name([Argument_list]){ Các câu lệnh; } Ví dụ class CRectangle { int width, height; public: void set_values (int a,int b); int area () { return (width*height); } }; void CRectangle:: set_values (int a, int b) { width = a; height = b; } Chương trình hồn thiện #include #include class CRectangle{ int width, height; public: void set_values (int,int); int area () {return width*height);} }; void CRectangle::set_values (int a, int b) {width = a; height = b; } int main () { CRectangle rect; rect.set_values (3, 4); cout >t.yA; coutt.xB>>t.yB; coutt.xC>>t.yC; } void Tamgiac::Nhap() { coutxA>>yA; coutxB>>yB; coutxC>>yC; } void main(){ void main() { } Tamgiac t, t1; Tamgiac t, t1; Nhap(t); t.Nhap(); Nhap(t1); t1.Nhap(); } • Tất phương thức lớp có đối ẩn trỏ (this) có kiểu kiểu lớp chứa phương thức Ví dụ: class A { private: Chú ý: Con trỏ this đối … mặc định người lập public: trình khơng cần khai báo DataType method(); } Truy nhập đến thành phần lớp từ trỏ this cách 1: this->property, this->method([arg]); cách 2: property, method([arg]); Ví dụ void Tamgiac::Nhap() { coutxA>>yA; coutxB>>yB; coutxC>>yC; } void Tamgiac::Nhap() { coutthis->xA>>this->yA; cout this-> xB>> this-> yB; cout this-> xC>> this->yC; } void main(){ void main() { } Tamgiac t, t1; Tamgiac t, t1; t.Nhap(); t.Nhap(); t1.Nhap(); t1.Nhap(); } II Phương thức lớp tốn tử • Các nhóm tốn tử: – Tốn tử ngơi: , ++, – Tốn tử hai ngơi: +, -, *, /, … – Tốn tử so sánh: >, >=, , (istream &is, classname &obj) { coutobj.property; … return is; } • Tốn tử xuất ostream& operator , >, >,

Ngày đăng: 20/05/2021, 11:42

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w