Lập trình hướng đối tượng C/C++ - OOP 01 advanced programming techniques
Trang 2Chuẩn Chuẩn và và quy quy ước ước lập lập trình trình
Nạp Nạp chồng chồng hàm hàm
Con Con trỏ trỏ hàm hàm
2 Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
Trang 3Chuẩn Chuẩn và và quy quy ước ước lập lập trình trình
Nạp Nạp chồng chồng hàm hàm
Con Con trỏ trỏ hàm hàm
3 Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
Trang 4Chuẩn và quy ước lập trình
Làm việc nhóm:
Mỗi người một việc.
Ráp nối công việc.
Mọi người luôn hiểu nhau?
Phối hợp công việc hiệu quả Áp đặt kỷ luật!!
Trang 5Chuẩn và quy ước lập trình
Không Không có có chuẩn chuẩn chung chung toàn toàn thế thế giới giới!! !!
Quy Quy ước ước đặt đặt tên tên (Naming Convention): (Naming Convention):
QuyQuy tắctắc vàngvàng: : têntên phảiphải thểthể hiệnhiện ý ý nghĩanghĩa
x, y, f, x, y, f, g g không không rõ rõ nghĩa nghĩa
total, rate, create, total, rate, create, run run rõ rõ nghĩa nghĩa
5 Phương pháp lập trình hướng đối tượng – GV Nguyễn Minh Huy
QuyQuy tắctắc đặtđặt têntên theotheo kiểukiểu ““lạclạc đàđà” (Camel Case)” (Camel Case)
Dùng Dùng để để viết viết các các từ từ dính dính liền liền nhau nhau
Viết Viết hoa hoa chữ chữ cái cái đầu đầu mỗi mỗi từ từ
U Upper pperC Camel amelC Casease
llower owerC Camel amelC Casease
Trang 6Chuẩn và quy ước lập trình
Quy Quy ước ước viết viết câu câu lệnh lệnh::
QuyQuy tắctắc vàngvàng: : viếtviết câucâu lệnhlệnh rộngrộng rãirãi, , rõrõ ràngràng
x= x=a+b a+b c*d; for( c*d; for(int int ii=0;i< =0;i<n;i n;i++); ++); không không rõ rõ ràng ràng
x = a + b x = a + b – – c * d; c * d;
for ( for (int int ii = 0; = 0; ii < n; < n; ii++); ++); rõ rõ ràng ràng
ViếtViết mỗimỗi câucâu lệnhlệnh mộtmột dòngdòng
6 Phương pháp lập trình hướng đối tượng – GV Nguyễn Minh Huy
ViếtViết mỗimỗi câucâu lệnhlệnh mộtmột dòngdòng
ViếtViết cáchcách khoảngkhoảng giữagiữa haihai đoạnđoạn lệnhlệnh
Quy Quy ước ước viết viết chú chú thích thích::
QuyQuy tắctắc vàngvàng: : viếtviết chúchú thíchthích đầyđầy đủđủ, , dễdễ hiểuhiểu
ViếtViết chúchú thíchthích chocho từngtừng hàmhàm
DùngDùng dấudấu // // thaythay chocho /* */./* */
Trang 7Chuẩn Chuẩn và và quy quy ước ước lập lập trình trình
Nạp Nạp chồng chồng hàm hàm
Con Con trỏ trỏ hàm hàm
7 Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
Trang 8Nạp chồng hàm
Chữ Chữ ký ký hàm hàm (Function Signature): (Function Signature):
PhânPhân biệtbiệt giữagiữa cáccác hàmhàm
ĐặcĐặc trưngtrưng củacủa mộtmột hàmhàm::
Tên Tên hàm hàm
Danh Danh sách sách tham tham số số
double double sapXepsapXep((int int aMang aMang[], [], int int kichThuoc kichThuoc););
8 Phương pháp lập trình hướng đối tượng – GV Nguyễn Minh Huy
double double sapXepsapXep((int int aMang aMang[], [], int int kichThuoc kichThuoc););
PhanSo PhanSo PhanSo PhanSo::cong::cong((PhanSo PhanSo p p););
Giá Giá trị trị trả trả về về không không thuộc thuộc chữ chữ ký ký hàm hàm!! !!
Chương trình có thể có nhiều hàm cùng tên!!
Trang 10Chuẩn Chuẩn và và quy quy ước ước lập lập trình trình
Nạp Nạp chồng chồng hàm hàm
Con Con trỏ trỏ hàm hàm
10 Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
Trang 11ThamTham sốsố hóahóa phépphép tínhtính
TổngTổng quátquát 2: 2: tínhtính toántoán bấtbất kỳkỳ trêntrên cáccác phầnphần tửtử
Trang 12KhaiKhai báobáo thamtham sốsố vớivới kiểukiểu hàmhàm
int int xuLyMang xuLyMang((int int m[ ], m[ ], int int kichThuoc kichThuoc, , PhepTinh PhepTinh p p))
{{{{
int int ketQua ketQua = = mang mang[0]; [0];
for ( for (int int ii = 1; = 1; ii < < kichThuoc kichThuoc; ; ii++) ++)
ketQua ketQua = = p( p(ketQua ketQua, , mang mang[[ii]); ]);
return return ketQua ketQua;;
}}
12 Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
Trang 13TruyềnTruyền têntên hàmhàm dướidưới dạngdạng thamtham sốsố
void
void main main()() {{
int int m[5] = {1, 2, 3, 4, 5}; m[5] = {1, 2, 3, 4, 5};
int
int ketQua ketQua = = xuLyMang xuLyMang(m, 5, (m, 5, cong cong););
}}
13 Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
Trang 14Con
Đặc Đặc điểm điểm của của con con trỏ trỏ hàm hàm::
ThamTham sốsố hóahóa xửxử lýlý
HàmHàm cócó thểthể làmlàm đốiđối sốsố củacủa hàmhàm kháckhác
HàmHàm cócó xửxử lýlý tổngtổng quátquát tùytùy xửxử lýlý truyềntruyền vàovào
XửXử lýlý cụcụ thểthể đượcđược quyếtquyết địnhđịnh khikhi gọigọi hàmhàm
14 Phương pháp lập trình hướng đối tượng – GV Nguyễn Minh Huy
Ghi Ghi chú chú::
KhôngKhông nhấtnhất thiếtthiết dùngdùng typedef typedef tạotạo kiểukiểu dữdữ liệuliệu hàmhàm
int int xuLyMang xuLyMang((int int m[ ], m[ ], int int kichThuoc kichThuoc, , int int p( p(int int, , int int) ) ))
{{
//
// Cài Cài đặt đặt{ { }}
Trang 15Chuẩn Chuẩn và và quy quy ước ước lập lập trình trình
Nạp Nạp chồng chồng hàm hàm
Con Con trỏ trỏ hàm hàm
Function Template.
15 Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
Trang 16Function Template
Xét Xét hàm hàm tìm tìm min min giữa giữa 2 2 số số::
TìmTìm min min giữagiữa 2 2 sốsố 3 3 vàvà 5.5
TổngTổng quátquát 1: 1: tìmtìm min min giữagiữa 2 2 sốsố nguyênnguyên bấtbất kỳkỳ
ThamTham sốsố hóahóa giágiá trịtrị truyềntruyền vàovào
TổngTổng quátquát 2: 2: tìmtìm min min giữagiữa 2 2 sốsố kiểukiểu bấtbất kỳkỳ
16 Phương pháp lập trình hướng đối tượng – GV Nguyễn Minh Huy
Trang 17int int x = x = timMin timMin(3, 5); (3, 5);
int
int a = a = 4, 4, b = b = 6; 6;
int int c = c = timMin timMin(a, b); (a, b);
17 Phương pháp lập trình hướng đối tượng – GV Nguyễn Minh Huy
int int c = c = timMin timMin(a, b); (a, b);
float float k k = = timMin timMin(1.5, 2.3); (1.5, 2.3);
}}
Trang 18Function Template
Đặc Đặc điểm điểm của của Function Template: Function Template:
ThamTham sốsố hóahóa kiểukiểu dữdữ liệuliệu
HàmHàm tổngtổng quátquát chocho nhiềunhiều kiểukiểu dữdữ liệuliệu kháckhác nhaunhau
KiểuKiểu cụcụ thểthể đượcđược quyếtquyết địnhđịnh khikhi gọigọi hàmhàm
Ghi Ghi chú chú::
18 Phương pháp lập trình hướng đối tượng – GV Nguyễn Minh Huy
Ghi Ghi chú chú::
TừTừ khóakhóa “class” “class” cócó thểthể thaythay bằngbằng “ “typename typename” ”
PhầnPhần khaikhai báobáo vàvà càicài đặtđặt đềuđều phảiphải khaikhai báobáo template.template
PhầnPhần càicài đặtđặt hàmhàm phảiphải nằmnằm cùngcùng file:file:
Phần Phần khai khai báo báo hàm hàm
Phần Phần gọi gọi sử sử dụng dụng hàm hàm
Trang 19Chuẩn Chuẩn và và quy quy ước ước lập lập trình trình::
ThốngThống nhấtnhất cáchcách thứcthức làmlàm việcviệc chocho hiệuhiệu quảquả
ÁpÁp đặtđặt kỷkỷ luậtluật lênlên việcviệc lậplập trìnhtrình
QuyQuy tắctắc đặtđặt têntên: : têntên thểthể hiệnhiện ý ý nghĩanghĩa
QuyQuy tắctắc viếtviết câucâu lệnhlệnh: : rộngrộng rãirãi, , rõrõ ràngràng
QuyQuy tắctắc viếtviết chúchú thíchthích: : đầyđầy đủđủ, , dễdễ hiểuhiểu
Nạp Nạp chồng chồng hàm hàm::
NhiềuNhiều hàmhàm cùngcùng têntên, , kháckhác thamtham sốsố
19 Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
Trang 20ThamTham sốsố hóahóa kiểukiểu dữdữ liệuliệu
ThamTham sốsố hóahóa kiểukiểu dữdữ liệuliệu
HàmHàm xửxử lýlý tổngtổng quátquát trêntrên nhiềunhiều kiểukiểu kháckhác nhaunhau
20 Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
Trang 21Bài Bài tập tập 1.1: 1.1:
Viết
Viết chương chương trình trình cho cho phép phép thực thực hiện hiện các các thao thao tác tác trên trên kiểukiểu phân phân số số::
Nhập Nhập, , xuất xuất phân phân số số
Rút Rút gọn gọn phân phân số số
Cộng Cộng, , trừ trừ, , nhân nhân, , chia chia, so , so sánh sánh hai hai phân phân số số
21 Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy