TRƯỜNG ĐẠI HC CÔNG NGH THÔNG TIN ĐHQG-HCM
BAN HC TP CÔNG NGH PHN MM
LỜI GIỚI THIỆU
Xin chào các bạn sinh viên thân mến,
Sau những tháng ngày hoạt động đồng hành cùng mọi người qua rất nhiều
mùa thi, chúng mình nhận thấy mọi người cần một nguồn liệu ngắn gọn, dễ
hiểu nhưng phải đầy đủ. Chính vậy Ban học tập Đoàn khoa Công nghệ Phần
mềm đã bắt tay biên soạn cuốn sách này, sách sẽ gồm những phần như: khái quát
nội dung, trọng tâm chương trình học và đề thi mẫu kèm lời giải chi tiết nhất.
Đây là dự án mà Ban học tập Đoàn khoa Công nghệ Phần mềm đã ấp ủ từ rất lâu.
Và với phương châm: "Dễ hiểu nhất và tường tận nhất", chúng mình hy vọng rằng
cuốn sách này sẽ trthủ đắc lực nhất cho các bạn sinh viên UIT trong việc học
tập và giúp các bạn đạt thành tích cao nhất trong các kì thi.
Sau những nỗ lực chúng mình đã hoàn thành bộ môn Lập trình hướng đối ợng
(Object Oriented Programming - OOP). Đây là một trong những kỹ thuật lập trình
rất quan trọng và sử dụng nhiều hiện nay. Hầu hết các ngôn ngữ lập trình hiện này
như Java, Ruby, Python… đều hỗ trợ OOP. OOP giúp lập trình viên đặt ra mục
tiêu quản source code giúp gia tăng khả năng tái sử dụng quan trọng hơn
hết là có thể tóm gọn được các thủ tục đã biết trước tính chất thông qua quá trình
sử dụng các đối tượng.
Nếu sách có những điểm gì thắc mắc hãy liên hệ lại với chúng mình nhé!
Thông tin liên hệ của BHTCNPM:
Website: https://www.bhtcnpm.com/
Gmail: bht.cnpm.uit@gmail.com
Fanpage: https://www.facebook.com/bhtcnpm
Group BHT NNSC: https://www.facebook.com/groups/bht.cnpm.uit
Trân trọng cảm ơn các bạn đã quan tâm.
TRƯỜNG ĐẠI HC CÔNG NGH THÔNG TIN ĐHQG-HCM
BAN HC TP CÔNG NGH PHN MM
NGƯỜI BIÊN SOẠN
- 22520971 Lê Duy Nguyên
- 22520072 Phan Nguyn Tun Anh
- 22521084 Hoàng Gia Phong
- 22521531 Nguyn Lâm Thanh Triết
- 22520616 Ngô Hoàng Khang
- Các thành viên và CTV ca Ban hc tập Đoàn khoa Công nghệ Phần mềm
1
TỜNG ĐẠI HC CÔNG NGH THÔNG TIN ĐHQG-HCM
BAN HC TP CÔNG NGH PHN MM
Mc lc
CHƯƠNG I: GIỚI THIU V LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG ....................................................................... 3
CHƯƠNG II: LỚP (CLASS), ĐỐI TƯỢNG (OBJECT) VÀ ĐẶC TÍNH ĐÓNG GÓI (ENCAPSULATION) ............ 4
2.1. Khái nim v Lớp (Class) và Đối tượng (Object) ................................................................................... 4
2.2. Khai báo và định nghĩa một Lớp đối tượng mi .................................................................................. 5
2.3. Hàm thành phn - Phương thức (Member function - Method) ....................................................... 6
2.3.1. Khái nim ..............................................................................................................................6
2.3.2. Cách gọi phương thức .........................................................................................................6
2.3.3. Định nghĩa phương thức .....................................................................................................7
2.3.4. Gii thiu v con tr “this” .................................................................................................8
2.4. Trừu tượng hóa d liệu (Data abstraction) và Đóng gói (Encapsulation) ..................................... 9
2.5. Phm vi truy xut ......................................................................................................................................... 9
2.6. Phương thức truy vn và cp nht......................................................................................................... 11
2.7. Phương thức thiết lp (Constructor) ..................................................................................................... 12
2.7.1. Phương thức thiết lp mặc định (default constructor) ...................................................... 13
2.7.2. Phương thức thiết lp nhn tham s đầu vào (parameterized constructors) .............. 15
2.7.3. Phương thức thiết lp sao chép (copy constructor) ............................................................ 15
2.8. Phương thức phá hy (Destructor) ........................................................................................................ 18
2.8.1. Phương thức phá hy và cấp phát động ............................................................................... 19
2.8.2. Phương thức phá hủy và phương thức thiết lp sao chép ................................................ 20
2.9. Thành phần tĩnh (Static member) .......................................................................................................... 22
2.9.1. Khi tạo thành viên tĩnh ........................................................................................................... 22
2.9.2. Cách gọi các thành viên tĩnh .................................................................................................... 23
2.9.3. Định nghĩa thành viên tĩnh ...................................................................................................... 23
2.10. Hàm bn, lp bn (Friends) ..................................................................................................................... 24
2.10.1. Hàm bn ........................................................................................................................................ 24
2.10.2. Lp bn .......................................................................................................................................... 25
CHƯƠNG III: ĐA NĂNG HÓA TOÁN TỬ (OVERLOAD OPERATOR) ............................................................. 26
3.1. Gii thiệu tính năng và cú pháp khai báo ............................................................................................ 26
3.1.1. Np chng toán t là gì? ........................................................................................................... 26
2
TỜNG ĐẠI HC CÔNG NGH THÔNG TIN ĐHQG-HCM
BAN HC TP CÔNG NGH PHN MM
3.1.2. Cơ chế hoạt động ......................................................................................................................... 27
3.1.3. Cú pháp overload ......................................................................................................................... 27
3.1.4. Chuyn kiu ................................................................................................................................... 30
3.1.5. S nhp nhng .............................................................................................................................. 31
3.2. Toán t nhp, xut (Input, output operator) ...................................................................................... 32
3.3. Toán t so sánh (Relational operator) .................................................................................................. 34
3.4. Toán t gán (Assignment operator) ...................................................................................................... 34
3.5. Toán t s hc, gán kết hp (Compound-assignment operator) .................................................. 35
3.6. Toán t tăng một, gim mt (Increment, decrement operator) .................................................... 35
CHƯƠNG IV: KẾ THỪA (INHERITANCE) VÀ ĐA HÌNH (POLYMORPHISM)................................................. 37
4.1. Mi quan h đặc bit hóa, tng quát hóa ............................................................................................ 37
4.2. Kế tha .......................................................................................................................................................... 38
4.3. Định nghĩa lớp cơ sở và lp dn xut trong C++ ............................................................................... 39
4.3.1. Bài toán qun lí ca hàng sách ................................................................................................ 39
4.3.2. Định nghĩa lớp cơ sở ................................................................................................................... 39
4.3.3. Phm vi truy xut protected trong kế tha ........................................................................ 40
4.3.4. Định nghĩa lớp dn xut ............................................................................................................ 41
4.4. Các kiu kế tha ......................................................................................................................................... 42
4.5. Phương thức thiết lp trong kế tha .................................................................................................... 43
4.6. Phép gán và con tr trong kế tha ........................................................................................................ 44
4.7. Phương thức ảo (Virtual function) và Đa hình (Polymorphism) .................................................... 45
4.8. Lớp cơ s trừu tượng (Abstract base class) ......................................................................................... 48
4.9. Phương thức phá hy trong kế tha ..................................................................................................... 49
CHƯƠNG V: GIẢI CÁC DNG BÀI TP TRONG ĐỀ THI................................................................................. 51
5.1. Dng câu 1 ................................................................................................................................................... 51
5.2. Dng câu 2 ................................................................................................................................................... 56
5.3. Dng câu 3 ................................................................................................................................................... 70