Bài giảng Kỹ thuật lập trình: Chương 3 - Trần Quang Hải Bằng
lượt xem 3
download
Bài giảng "Kỹ thuật lập trình - Chương 3: Lớp và đối tượng" cung cấp cho người học các kiến thức: Lớp - Khai báo, định nghĩa hàm thành viên; đối tượng - Khai báo, sử dụng, gán; sơ lược về hàm xây dựng, hàm hủy; dữ liệu và hàm thành viên tĩnh, khai thác lớp 1. Mời các bạn cùng tham khảo nội dung chi tiết.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Kỹ thuật lập trình: Chương 3 - Trần Quang Hải Bằng
- Nội dung Chương 3 • Lớp: khai báo, ñịnh nghĩa hàm thành viên. • ðối tượng: khai báo, sử dụng, gán. LỚP VÀ ðỐI TƯỢNG • Sơ lược về hàm xây dựng, hàm hủy • Dữ liệu và hàm thành viên tĩnh • Khai thác 1 lớp 1 2 Lớp Lớp • Khai báo • Định nghĩa hàm thành viên class { Thuộc tính truy cập : Toán tử chỉ phạm vi Thuộc tính truy cập : :: ( Các tham số + Kiểu ) }; { < Khai báo các dữ liệu cục bộ của hàm> < Thân hàm - Nội dung hàm > Sơ ñồ lớp ñiểm trong < Câu lệnh return > không gian 2 chiều } 3 4
- Lớp ðối tượng • Ví dụ • Khởi tạo ñối tượng – Dạng biến: ; VD: Diem a, b; – Dạng mảng: [Kích thước]; VD: Diem mang[10]; 1000H 1008H x y x a y 1004H mang x y b 5 6 ðối tượng ðối tượng • Khởi tạo ñối tượng • Sử dụng ñối tượng – Dạng con trỏ : – Khi khởi tạo ñối tượng xong, ta có thể : VD: Diem *pa, *ds; • Truy xuất ñến dữ liệu thành viên của ñối tượng. pa= new Diem; ds= new Diem[10]; • Gọi hàm trên ñối tượng. delete pa; delete[] ds; tùy theo thuộc tính truy cập của các thành phần ñó. Chú ý: Phải cp và thu hi vùng nhớ cho con trỏ ñối tượng. 1060H *pa1060 x y *ds 1064 1064H x y 7 8
- ðối tượng ðối tượng • Ví dụ • Phép gán ñối tượng: – Dùng dấu = ( có sẵn trong ngôn ngữ C++). – Thực chất là gán tương ứng các thành phần dữ liệu của hai ñối tượng cho nhau. – Chỉ ñúng khi thành phần dữ liệu không có con trỏ. => Phải ñịnh nghĩa lại phép gán khi dữ liệu có con trỏ. void main() { Diem a; a.KhoiTao(10,20); Diem b, *pb; b = a; b.InDiem(); // In ra (10, 20) pb = new Diem; 9 *pb = a; pb->InDiem(); // In ra (10, 20) 10 Hàm xây dựng – Hàm hủy Hàm xây dựng – Hàm hủy • Hàm xây dựng (Constructor) • Hàm xây dựng (constructor) – Tại sao cần hàm xây dựng ? – Dùng ñể khởi tạo ñối tượng: • Gán giá trị ñầu cho các dữ liệu thành viên. • Cấp vùng nhớ cho các con trỏ thành viên. – Cú pháp: • Cùng tên với tên lớp, không có trị trả về (kể cả void). hiệu ứng phụ • Có thể không có hay có nhiều tham số. • Có thể không có, có 1 hay nhiều hàm xây dựng. – Sử dụng : • Không ñược gọi trực tiếp. Cần phải khởi tạo giá trị ban ñầu cho các dữ liệu thành viên • Sẽ ñược tự ñộng gọi khi khởi tạo ñối tượng. 11 12
- Hàm xây dựng – Hàm hủy Hàm xây dựng – Hàm hủy • Ví dụ 1 về hàm xây dựng void main() { • Ví dụ 2 về hàm xây dựng // Goi Diem() Diem a; class Diem { // In (0,0) int x,y; a. InDiem(); public: // Diem(int,int) Diem();// xd mặc nhiên Diem b(10,5); Diem(int); // Diem(int) Diem(int,int); Diem c(3); ... Diem *pa = new Diem(); }; Diem *pb = new Diem(10,5); Diem::Diem() Diem *pc = new Diem(3); { x=y=0; } // Goi Diem() Diem::Diem(int a) Diem ds1[10]; { x = y = a; } // Goi Diem() Diem::Diem(int h, int t) Diem *ds2 = new Diem [10]; { x=h; y=t; } ... } 13 14 Hàm xây dựng – Hàm hủy Các loại ñối tượng • Hàm hủy (destructor) • ðối tượng toàn cục - ðối tượng cục bộ – Dùng ñể thu hồi vùng nhớ ñã cấp cho các dữ liệu thành – ðối tượng toàn cục : viên là con trỏ của ñối tượng, khi hủy bỏ ñối tượng. • Khai báo ngoài các lớp và ngoài hàm main(). => delete các con trỏ là dữ liệu thành viên. • Sẽ ñược khởi tạo (tự ñộng gọi hàm xây dựng tương – Một lớp có thể không có hoặc chỉ có duy nhất 1 hàm hủy. ứng) trước khi hàm main() thực thi. – Cú pháp : ~ ( ) { … } • Sẽ ñược hủy bỏ ( tự ñộng gọi hàm hủy cho ñối tượng ) sau khi kết thúc hàm main(). – Không ñược gọi trực tiếp mà sẽ ñược tự ñộng gọi khi hủy bỏ ñối tượng. – ðối tượng cục bộ : VD: Diem::~Diem () { } • Khai báo trong một hàm. SinhVien::~SinhVien() { • Sẽ khởi tạo trong khi thực thi hàm ñó. delete[] hoten; • Sẽ ñược hủy bỏ ( tự ñộng gọi hàm hủy cho ñối tượng } 15 ñó) trước khi hàm kết thúc. 16
- Dữ liệu và hàm thành viên tĩnh Dữ liệu và hàm thành viên tĩnh • Dữ liệu thành viên tĩnh (static) • Hàm thành viên tĩnh (static) – Là dữ liệu thành viên dùng chung cho tất cả các ñối tượng – ðộc lập với các ñối tượng của cùng 1 lớp => tồn tại ñộc lập với các ñối tượng. => khi gọi hàm không cần ñối tượng nào : – Giống như 1 biến toàn cục. :: :: (danh sách tham số) – Phải ñược khởi tạo bên ngoài của lớp. – Chỉ cần thêm static vào trước khai báo hàm trong lớp. – Thường ñược sử dụng ñể ñếm số lượng ñối tượng hiện có. – Giống như 1 hàm toàn cục. Tại thời ñiểm này 17 18 dem = ? Khai thác một lớp Khai thác một lớp • Tránh ñịnh nghĩa lớp nhiều lần : • Khai báo lớp : file .hpp • ðịnh nghĩa hàm thành viên : file .cpp ðể tránh #include nhiều • Sử dụng lớp : trong 1 file khác vidu.cpp lần một lớp có trong nhiều tập tin khác nhau, Diem.hpp Diem.cpp Vidu.cpp ta dùng các từ khóa tiền #include “Diem.hpp” #include “Diem.cpp” class Diem { Diem::Diem() void main () { xử lý. {… } Diem a; int x,y; #ifndef void Diem::InDiem() a.InDiem(); ... {…} …. }; ... } #define #endif 19 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Kỹ thuật lập trình Hook
17 p | 123 | 36
-
Bài giảng Kỹ thuật lập trình: Ngôn ngữ lập trình C
7 p | 167 | 20
-
Bài giảng Kỹ thuật lập trình: Chương V - Lưu Hồng Việt
19 p | 128 | 15
-
Bài giảng Kỹ thuật lập trình - Chương 1: Nhập môn về máy tính và lập trình
16 p | 145 | 8
-
Bài giảng Kỹ thuật lập trình cơ bản: Chương 0 – Trần Minh Thái
17 p | 115 | 7
-
Bài giảng Kỹ thuật lập trình: Bài 1 - Phạm Đình Sắc
9 p | 130 | 7
-
Bài giảng Kỹ thuật lập trình: Chương 0 - Trường Đại học Ngoại ngữ - Tin học TP.HCM
7 p | 15 | 6
-
Bài giảng Kỹ thuật lập trình: Bài 1 - TS. Đào Trung Kiên
18 p | 109 | 6
-
Bài giảng Kỹ thuật lập trình - TS. Vũ Hương Giang
8 p | 117 | 5
-
Bài giảng Kỹ thuật lập trình: Bài 2 - Phạm Đình Sắc
7 p | 117 | 5
-
Bài giảng Kỹ thuật lập trình: Chương 1 - Trần Quang Hải Bằng
15 p | 63 | 3
-
Bài giảng Kỹ thuật lập trình nâng cao: Chương 3 - Trần Minh Thái
14 p | 38 | 3
-
Bài giảng Kỹ thuật lập trình nâng cao: Chương 2 - Trần Minh Thái
13 p | 59 | 3
-
Bài giảng Kỹ thuật lập trình: Mở đầu - TS. Vũ Hương Giang
8 p | 36 | 2
-
Bài giảng Kỹ thuật lập trình: Giới thiệu môn học - ThS. Lê Thị Ngọc Hạnh
9 p | 82 | 2
-
Bài giảng Kỹ thuật lập trình: Giới thiệu môn học - ThS. Đặng Bình Phương
7 p | 0 | 0
-
Bài giảng Kỹ thuật lập trình: Danh sách liên kết - ThS. Đặng Bình Phương
20 p | 2 | 0
-
Bài giảng Kỹ thuật lập trình: Chuỗi ký tự - ThS. Đặng Bình Phương
20 p | 1 | 0
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn