1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Giới thiệu lập trình: Hàm nâng cao - TS. Lê Nguyên Khôi

19 12 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 155,47 KB

Nội dung

Bài giảng Giới thiệu lập trình: Hàm nâng cao cung cấp cho người học các kiến thức: Nhắc lại hàm – cơ bản, nạp chồng hàm, nạp chồng toán tử. Đây là một tài liệu hữu ích dành cho các bạn sinh viên và những ai quan tâm dùng làm tài liệu học tập và nghiên cứu.

Giới Thiệu Lập Trình Hàm – Nâng Cao TS Lê Nguyên Khôi Trường Đại học Công nghệ, ĐHQGHN Nội Dung Nhắc lại Hàm – Cơ Bản Nạp chồng hàm Nạp chồng tốn tử Giới Thiệu Lập Trình Hàm – Cơ Bản Khai báo hàm int bin ( int , int ) ; Định nghĩa hàm int bin ( int so1 , int so2 ) { // thân hàm miêu tả định nghĩa // không khai báo lại so1 , so2 } Chữ ký hàm int bin ( int , int ) Lời gọi hàm int a = bin ( so1 , so2 ) ; Sử dụng tên hàm, tên tham số, khơng có kiểu Giới Thiệu Lập Trình Hàm – Cơ Bản – Truyền Tham Số Truyền giá trị int bin ( int , int ) ; Tạo truyền > tốn chi phí Thay đổi , gốc ngồi hàm khơng đổi Xóa kết thúc hàm Truyền tham chiếu int bin ( int & , int & ) ; Chính gốc truyền (địa gốc) Thay đổi hàm, gốc thay đổi Khơng xóa gốc kết thúc hàm Giới Thiệu Lập Trình Hàm – Cơ Bản – Sử Dụng const Truyền tham chiếu int bin ( int & , int & ) ; Thay đổi hàm, gốc thay đổi Không muốn hàm thay đổi, sử dụng từ khóa const Bảo vệ liệu, không cho thay đổi, liệu “chỉ-đọc” int bin ( const int & , const int & ) ; Quy ước: Luôn truyền tham chiếu Dữ liệu không thay đổi, dùng const Dữ liệu thay đổi, không dùng const Giới Thiệu Lập Trình Hàm Nạp Chồng (Function Overloading) Các hàm thực công việc tương tự Trùng tên, khác tham số Số lượng tham số Kiểu tham số Xác định hàm gọi: Sử dụng thông tin tham số Số lượng & kiểu tham số Kiểu hàm Giới Thiệu Lập Trình Hàm Nạp Chồng – Ví Dụ void _trungDiem ( const ToaDo & td1 , const ToaDo & td2 , ToaDo & trungDiem ) { trungDiem.x = ( td1.x + td2.x ) / 2; trungDiem.y = ( td1.y + td2.y ) / 2; } ToaDo * _trungDiem ( const ToaDo & td1 , const ToaDo & td2 ) { ToaDo * trungDiem = new ToaDo; (*trungDiem).x = ( td1.x + td2.x ) / 2; (*trungDiem).y = ( td1.y + td2.y ) / 2; return trungDiem; } Giới Thiệu Lập Trình Hàm Nạp Chồng Khác số lượng tham số Hàm tính tổng số truyền vào Tính tổng số nguyên int _tong ( int , int , int ) ; Tính tổng số nguyên int _tong ( int , int ) ; Tính tổng số nguyên int _tong ( int ) ; Dựa số lượng tham số để gọi hàm tương ứng Giới Thiệu Lập Trình Hàm Nạp Chồng Tham số mặc định int _tong(int so1, int so2 = 0, int so3 = 0) { return so1 + so2 + so3; } Có thể gọi _tong ( , , ) _tong ( , ) _tong ( ) Có định nghĩa hàm int _tong ( int , int ) _tong ( , ) gọi hàm Giới Thiệu Lập Trình Hàm Nạp Chồng Khác kiểu tham số Hàm tính tổng số truyền vào int _tong ( int , int ) ; double _tong ( double , double ) ; Dựa kiểu tham số để gọi hàm tương ứng Tại không sử dụng chuyển đổi kiểu tự động Kiểu trả không Nguy hiểm _tong(1,2) gọi int _tong(int, int); _tong(1.0,2.0) gọi double _tong(double, double); Giới Thiệu Lập Trình Hàm Nạp Chồng Khác kiểu tham số Hàm tính tổng số truyền vào double _tong ( int , double ) ; double _tong ( double , int ) ; Dựa kiểu tham số để gọi hàm tương ứng Sử dụng chuyển đổi kiểu tự động _tong ( , ) _tong ( 3.5 , 3.5 ) Gọi hàm Thêm đầy đủ int _tong ( int , int ) ; double _tong ( double , double ) ; Giới Thiệu Lập Trình 10 Tốn Tử Tốn tử thực chất hàm Sử dụng toán tử giống lời gọi hàm Viết theo cách khác Ví dụ: so sánh == thực chất == ( , ) Giới Thiệu Lập Trình 11 Tốn Tử Nạp Chồng Giống hàm, tốn tử nạp chồng Định nghĩa toán tử cho kiểu liệu Nạp chồng toán tử so sánh cho kiểu cấu trúc struct PS { int ts , ms ; } ; bool operator == ( const PS & ps1 , const PS & ps2 ) { return ( ps1.ts * ps2.ms == ps2.ts * ps1.ms ) ; } bool operator != ( const PS & , const PS & ) ; Giới Thiệu Lập Trình 12 Tốn Tử Nạp Chồng struct PS { int ts , ms ; } bool operator == ( const PS const PS bool operator != ( const PS const PS int main() { PS ps1 , ps2 ; // nhập liệu … if ( ps1 == ps2 ) … if ( ps1 != ps2 ) … } Giới Thiệu Lập Trình ; & & & & , ) ; , ) ; 13 Toán Tử Nạp Chồng struct PS { int ts , ms ; } ; PS operator + ( const PS & ps1 , const PS & ps2 ) { PS tongPS; // cập nhật tongPS return tongPS; } int main() { PS ps1 , ps2 , tongPS ; tongPS = ps1 + ps2 ; } Giới Thiệu Lập Trình 14 Tốn Tử Nạp Chồng struct PS { int ts , ms ; } ; PS operator + ( const PS & ps , const int & i ) { PS tongPS; // cập nhật tongPS return tongPS; } int main() { PS ps , tongPS ; tongPS = ps + ; } Giới Thiệu Lập Trình 15 Tốn Tử Nạp Chồng ostream & operator

Ngày đăng: 08/05/2021, 15:28

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w