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

Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 3: Cơ bản về lớp trong C++

35 47 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 35
Dung lượng 390,34 KB

Nội dung

Bài giảng cung cấp cho người học các kiến thức: Lập trình hướng thủ tục và hướng đối tượng, khái niệm lớp - Khai báo lớp; cài đặt các phương thức, truy cập đến các thành phần của lớp, cấu tử - Hủy tử,... Mời các bạn cùng tham khảo nội dung chi tiết.

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 thung 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 thung 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 class Tamgiac{ private: 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, height; 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{ private: 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(); } I Con trỏ this • 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: 14/10/2020, 22:16

HÌNH ẢNH LIÊN QUAN

rect.area(); thì diện tích của hình chữ nhật là bao nhiêu? - Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 3: Cơ bản về lớp trong C++
rect.area (); thì diện tích của hình chữ nhật là bao nhiêu? (Trang 14)
Ví dụ: xây dựng lớp hình chữ nhật - Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 3: Cơ bản về lớp trong C++
d ụ: xây dựng lớp hình chữ nhật (Trang 16)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN