
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
Thông tin tài liệu:
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ìm kiếm theo từ khóa liên quan:
Ngôn ngữ lập trình C Bài giảng Ngôn ngữ lập trình Ngôn ngữ lập trình C++ Con trỏ this Đối tượng trong C++ Đối của phương thứcTài liệu có liên quan:
-
Giáo trình Cấu trúc dữ liệu và thuật toán trên C++
74 trang 398 0 0 -
46 trang 272 0 0
-
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 222 0 0 -
101 trang 211 1 0
-
Tài liệu học tập môn Tin cơ sở: Phần 1 - Phùng Thị Thu Hiền
100 trang 206 1 0 -
Lý thuyết ngôn ngữ lập trình C++ dành cho sinh viên: Phần 2
276 trang 162 0 0 -
Tìm hiểu về ngôn ngữ lập trình C: Phần 1 - Quách Tuấn Ngọc
211 trang 154 0 0 -
161 trang 139 1 0
-
51 trang 137 0 0
-
Giáo trình Vi điều khiển PIC: Phần 1
119 trang 130 0 0 -
Bài giảng Phương pháp lập trình: Chương 9 - GV. Từ Thị Xuân Hiền
36 trang 119 0 0 -
Đồ án vi xử lý đề tài : nghiên cứu thiết kế mạch đo khoảng cách sử dụng vi điều khiển Pic 16F887
45 trang 116 1 0 -
Tìm hiểu về ngôn ngữ lập trình C: Phần 2 - Quách Tuấn Ngọc
210 trang 96 0 0 -
ĐỀ CƯƠNG THI TRẮC NGHIỆM MÔN LẬP TRÌNH CÓ CẤU TRÚC
43 trang 78 0 0 -
Bài giảng Cấu trúc dữ liệu và giải thuật: Phần 1 - ThS. Hoàng Thế Phương
128 trang 73 0 0 -
Giáo trình Ngôn ngữ lập trình C++: Phần 2 - TS. Vũ Việt Vũ
107 trang 67 0 0 -
96 trang 58 2 0
-
88 trang 56 0 0
-
Giáo trình về môn Lập trình C căn bản
131 trang 54 0 0 -
Bài giảng Ngôn ngữ lập trình - Bài 4: Cấu trúc và lớp
73 trang 52 0 0