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

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

Đ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

• 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

Mục lục

  • Bài 3. Cơ bản về lớp trong C++

  • I. Lập trình hướng thủ tục và hướng đối tượng

  • Tiếp cận hướng thủ tục

  • Định nghĩa cấu trúc dữ liệu và các hàm

  • Tiếp cận hướng đối tượng

  • II. Khái niệm lớp - Khai báo lớp

  • Ví dụ: Khai báo lớp biểu diễn các ma trận với các phương thức đặt số hàng, số cột, nhập các phần tử và in các phần tử

  • III. Cài đặt các phương thức

  • Chương trình hoàn thiện

  • IV. Truy cập đến các thành phần của lớp

  • V. Cấu tử - Hủy tử

  • Tạo các cấu tử và hủy tử

  • Ví dụ: xây dựng lớp hình chữ nhật

  • Ví dụ: Xây dựng lớp ma trận

  • VI. Lớp mẫu (template class)

  • Ví dụ lớp mẫu biểu diễn các ma trận

  • Con trỏ this, phương thức của lớp là các toán tử,

  • II. Phương thức của lớp là các toán tử

  • II. Cài đăt các phương thức toán tử

  • Toán tử nhập – xuất

Tài liệu cùng người dùng

Tài liệu liên quan