Danh mục tài liệu

Bài giảng Ngôn ngữ lập trình C/C++ (Bài giảng tuần 10) – Nguyễn Hải Châu

Số trang: 4      Loại file: pdf      Dung lượng: 152.84 KB      Lượt xem: 2      Lượt tải: 0    
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài giảng tuần 10 cung cấp cho người học các kiến thức về đối tượng trong C++ như con trỏ this, hàm tạo/Cấu tử (constructor), hàm hủy/Hủy tử (destructor),... Mời các bạn cùng tham khảo để nắm bắt các nội dung chi tiết.
Nội dung trích xuất từ tài liệu:
Bài giảng Ngôn ngữ lập trình C/C++ (Bài giảng tuần 10) – Nguyễn Hải Châu Nội dung z Đối tượng trong C++ (tiếp) NGÔN NGỮ LẬP TRÌNH {Đối của phương thức C/C++ {Con trỏ this Nguyễn Hải Châu Khoa Công nghệ thông tin Trường Đại học Công nghệ (Bài giảng tuần 10) 1 2Ví dụ: Phương thức nhapsl() Con trỏ thisvoid DIEM::nhapsl() void DIEM::nhapsl(){ {cout x >> y ; cin >> this->x >> this->y ;cout m ; cin >>this->m;} } 3 4Ví dụ Các đối khác của phương thứcz DIEM d1; void DIEM::doan_thang(DIEM d2, int mau)z d1.nhapsl() ; {z Khi đó: int mau_ht; {this = &d1; và do đó: mau_ht = getcolor(); {this → x chính là d1.x setcolor(mau); {this → y chính là d1.y line(this->x, this->y,d2.x,d2.y); {this → m chính là d1.m setcolor(mau_ht);z Tham số truyền cho đối con trỏ this chính } là địa chỉ của đối tượng đi kèm với z Xem thêm ví dụ trang 227-229 phương thức trong lời gọi phương thức 5 6 1Hàm tạo/Cấu tử (constructor) Ví dụ hàm tạoz Hàm tạo (hay cấu tử) là một phương thức class DIEM_DH { đặc biệt để khởi tạo đối tượng private:z Cách viết hàm tạo: int x, y, m ; {Tên của hàm tạo: Tên của hàm tạo bắt buộc public: phải trùng với tên của lớp // Hàm tạo không đối: Khởi tạo x = 0, y = 0, m = 1 {Không khai báo kiểu cho hàm tạo DlEM_DH() {Hàm tạo không có kết quả trả về {z Trong một lớp có thể có nhiều hàm tạo x = y = 0; m = 1; (trùng tên nhưng khác số lượng đối) } 7 8 Sử dụng hàm tạo trong khai báo// Hàm tạo này xây dựng bên ngoài định nghĩa lớp DIEM_DH d; // Gọi tới hàm tạo không đối.DIEM_DH(int x1, int y1, int m1 = 15) ; // Kết quả d.x = 0, d.y = 0, d.m = 1// Các phương thức khác}; DIEM_DH u(300, 100, 5); // Gọi tới hàm tạo// Xây dựng hàm tạo bên ngoài định nghĩa lớp có đối.DIEM_DH:: DIEM_DH(int x1, int y1, int m1) ;{ // Kết quả u.x = 300, u.y = 100, d.m = 5 x = x1; y = y1; m = m1;} 9 10Sử dụng hàm tạo trong cấp phát Dùng hàm tạo biểu diễn đối tượng hằngDIEM_DH *r = new DIEM_DH ; z Tên_lớp(danh sách tham số) ; //Gọi tới hàm tạo không đối z Ví dụ:// Kết quả r → x = 0, r → y = 0, r → m = 1 DIEM_DH(234, l 23, 4) // Biểu thị một đối tượng kiểu DIEM_DHDIEM_DH *q = new DIEM_DH(40, 20, 4); // có các thuộc tính x = 234, y = 123, m = 4 // Gọi tới hàm tạo có đối// Kết quả q → x = 40, q → y = 20, q → m = 4 11 12 2 Lớp không có hàm tạo, hàm tạo mặc định Hàm hủy/Hủy tử (destructor) z Hàm hủy là một phương thức của lớp có z Lớp không có hàm tạo: Chương trình dịch chức năng ngược với hàm tạo cung cấp một hàm tạo mặc định không z Hàm hủy được gọi trước khi giải phóng làm gì cả một đối tượng để thực hiện giải phóng bộ z Lớp có ít nhất một hàm tạo: Chương trình nhớ dịch sẽ không cung cấp hàm tạo mặc z Hàm hủy mặc định: Do chương trình dịch định, mọi câu lệnh xây dựng đối tượng tạo ra và không làm gì cả mới sẽ gọi đến hàm tạo đã có 13 14 Qui tắc viết hàm hủy Ví dụ hàm hủyz Mỗi lớp chỉ có một hàm hủy viết theo các quy class DT { tắc sau: private: {Kiểu của hàm: Hàm hủy cũng giống như hàm tạo int n; // Bac da thuc là hàm không có kiểu, không có giá trị trả về. double *a; // Tro toi vung ...

Tài liệu được xem nhiều:

Tài liệu có liên quan: