Bài giảng Lập trình hướng đối tượng C++ - Chương 3: Lớp và đối tượng
lượt xem 9
download
Bài giảng Lập trình hướng đối tượng C++ - Chương 3: Lớp và đối tượng cung cấp cho người học những kiến thức như: 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 1 lớp. Mời các bạn cùng tham khảo!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Lập trình hướng đối tượng C++ - Chương 3: Lớp và đối tượng
- Chương 3 LỚP VÀ ĐỐI TƯỢNG 1
- Nội dung • 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 1 lớp 2
- Lớp • Khai báo class { Thuộc tính truy cập : Thuộc tính truy cập : }; Sơ đồ lớp điểm trong không gian 2 chiều 3
- Lớp • Định nghĩa hàm thành viên Toán tử chỉ phạm vi :: ( 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 > < Câu lệnh return > } 4
- Lớp • Ví dụ 5
- Đối tượng • 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 6
- Đối tượng • Khởi tạo đối tượng – Dạng con trỏ : VD: Diem *pa, *ds; pa= new Diem; ds= new Diem[10]; delete pa; delete[] ds; Chú ý: Phải cấp và thu hồi vùng nhớ cho con trỏ đối tượng. 106 1060H *pa x 0 y 106 1064H *ds 4 x y 7
- Đối tượng • Sử dụng đối tượng – Khi khởi tạo đối tượng xong, ta có thể : • Truy xuất đến dữ liệu thành viên của đối tượng. • Gọi hàm trên đối tượng. tùy theo thuộc tính truy cập của các thành phần đó. 8
- Đối tượng • Ví dụ 9
- Đối tượng • 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; *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 (Constructor) – Tại sao cần hàm xây dựng ? hiệu ứng phụ Cần phải khởi tạo giá trị ban đầu cho các dữ liệu thành viên 11
- Hàm xây dựng – Hàm hủy • Hàm xây dựng (constructor) – 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). • 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. • Sẽ được tự động gọi khi khởi tạo đối tượng. 12
- Hàm xây dựng – Hàm hủy • Ví dụ 1 về hàm xây dựng void main() { // 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
- Hàm xây dựng – Hàm hủy • Ví dụ 2 về hàm xây dựng 14
- Hàm xây dựng – Hàm hủy • Hàm hủy (destructor) – Dùng để thu hồi vùng nhớ đã cấp cho các dữ liệu thành viên là con trỏ của đối tượng, khi hủy bỏ đối tượng. => delete các con trỏ là dữ liệu thành viên. – Một lớp có thể không có hoặc chỉ có duy nhất 1 hàm hủy. – Cú pháp : ~ ( ) { … } – Không được gọi trực tiếp mà sẽ được tự động gọi khi hủy bỏ đối tượng. VD: Diem::~Diem () { } SinhVien::~SinhVien() { delete[] hoten; } 15
- Các loại đối tượng • Đối tượng toàn cục - Đối tượng cục bộ – Đối tượng toàn cục : • Khai báo ngoài các lớp và ngoài hàm main(). • Sẽ được khởi tạo (tự động gọi hàm xây dựng tương ứng) trước khi hàm main() thực thi. • 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(). – Đối tượng cục bộ : • Khai báo trong một hàm. • Sẽ khởi tạo trong khi thực thi hàm đó. • Sẽ được hủy bỏ ( tự động gọi hàm hủy cho đối tượng đó) 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 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ủa cùng 1 lớp => tồn tại độc lập với các đối tượng. – Giống như 1 biến toàn cục. – Phải được khởi tạo bên ngoài của lớp. – Thường được sử dụng để đếm số lượng đối tượng hiện có. Tại thời điểm này 17 dem = ?
- Dữ liệu và hàm thành viên tĩnh • Hàm thành viên tĩnh (static) – Độc lập với các đối tượng => khi gọi hàm không cần đối tượng nào : :: (danh sách tham số) – Chỉ cần thêm static vào trước khai báo hàm trong lớp. – Giống như 1 hàm toàn cục. 18
- Khai thác một lớp • Khai báo lớp : file .hpp • Định nghĩa hàm thành viên : file .cpp • Sử dụng lớp : trong 1 file khác vidu.cpp Diem.hpp Diem.cpp Vidu.cpp #include “Diem.hpp” #include “Diem.cpp” class Diem { Diem::Diem() void main () { {… } Diem a; int x,y; void a.InDiem(); ... Diem::InDiem() …. }; {…} } ... 19
- Khai thác một lớp • Tránh định nghĩa lớp nhiều lần : Để tránh #include nhiều lần một lớp có trong nhiều tập tin khác nhau, ta dùng các từ khóa tiền xử lý. #ifndef #define #endif 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - TS. Trần Công Án
57 p | 89 | 13
-
Bài giảng Lập trình hướng đối tượng: Chương 2 - Nguyễn Sơn Hoàng Quốc, ThS. Nguyễn Tấn Trần Minh Khang
14 p | 174 | 12
-
Bài giảng Lập trình hướng đối tượng - Chương 1: Phương pháp lập trình hướng đối tượng
9 p | 140 | 9
-
Bài giảng Lập trình hướng đối tượng C++ - Chương 2: Lập trình hướng đối tượng
53 p | 46 | 8
-
Bài giảng Lập trình hướng đối tượng (dùng Java): Chương 1 - Trần Minh Thái (2017)
55 p | 80 | 8
-
Bài giảng Lập trình hướng đối tượng - Bài 1: Tổng quan lập trình hướng đối tượng
53 p | 120 | 8
-
Bài giảng Lập trình hướng đối tượng (Dùng C#): Chương 2 - Trần Minh Thái
35 p | 103 | 8
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Trần Thị Anh Thi
7 p | 197 | 7
-
Bài giảng Lập trình hướng đối tượng: Bài 1 - ThS. Trịnh Thành Trung
53 p | 87 | 7
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Trần Minh Thái
40 p | 116 | 6
-
Bài giảng Lập trình hướng đối tượng 1: Chương 1 - ThS. Thái Kim Phụng
39 p | 100 | 6
-
Bài giảng Lập trình hướng đối tượng – Bài 01: Tổng quan về OOP
47 p | 63 | 5
-
Bài giảng Lập trình hướng đối tượng (dùng JAVA): Chương 1 - Trần Minh Thái
40 p | 99 | 5
-
Bài giảng Lập trình hướng đối tượng và C++: Chương 1
15 p | 104 | 4
-
Bài giảng Lập trình hướng đối tượng: Nhập môn - Trần Phước Tuấn
15 p | 139 | 4
-
Bài giảng Lập trình hướng đối tượng: Bài 1 - Tổng quan về lập trình hướng đối tượng
47 p | 11 | 4
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Các khái niệm cơ bản trong lập trình hướng đối tượng
36 p | 15 | 3
-
Bài giảng Lập trình hướng đối tượng: Bài 1 - Nguyễn Khanh Văn
0 p | 83 | 2
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