Bài giảng lập trình hướng đối tượng (object oriented programming) chương 1 9 hàm trong c++

34 2 0
Bài giảng lập trình hướng đối tượng (object oriented programming)   chương 1 9 hàm trong c++

Đ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

Chương 01.9: Hàm C++ I Khai báo hàm II Định nghĩa hàm III Sử dụng hàm IV Con trỏ trỏ tới hàm Ngô Công Thắng - Bài giảng LTHDT - Chương 01_9 I Khai báo hàm Giới thiệu hàm Cú pháp khai báo hàm Các tham số khai báo hàm Ngô Công Thắng - Bài giảng LTHDT - Chương 01_9 Giới thiệu hàm  Trong C++ tất chương trình gọi hàm  Ngồi hàm thư viện có sẵn, người lập trình tự tạo hàm Để tạo hàm người lập trình phải khai báo định nghĩa  Khai báo hàm (function declaration or prototype) xác định tên hàm, kiểu liệu trả về, số lượng tham số kiểu tham số  Định nghĩa hàm (function definition) xác định công việc mà hàm thực thông qua lệnh hàm  Các hàm C++ không lồng nhau, tức hàm ta định nghĩa hàm khác Ngô Công Thắng - Bài giảng LTHDT - Chương 01_9 Cú pháp khai báo hàm  Cú pháp khai báo hàm nằm dòng, kết thúc dấu chấm phẩy Kiểu_trả_về Tên_hàm(Kiểu_1 Tên_tham_số_1, Kiểu_2 Tên_tham_số_2,…); Ví dụ: float inchtomet(float x); float cong(float a, float b);  Một khai báo hàm khơng cho biết có thân hàm Nó báo cho trình biên dịch biết tên hàm, kiểu hàm, số lượng tham số kiểu tham số Ngô Công Thắng - Bài giảng LTHDT - Chương 01_9 Cú pháp khai báo hàm (tiếp)  Khai báo hàm đặt đâu trước gọi hàm Tốt để đầu tệp chứa chương trình (chứa hàm main) để trước hàm gọi Trong chương trình nhiều file khai báo hàm thường để file header có h, cịn định nghĩa hàm để file thư viện có obj lib  Nếu hàm định nghĩa trước gọi hàm khơng cần khai báo hàm Tuy nhiên nên có khai báo hàm chương trình có nhiều hàm lớn hay chương trình nằm nhiều file Ngơ Cơng Thắng - Bài giảng LTHDT - Chương 01_9 Các tham số khai báo hàm  Nếu hàm khơng có tham số dấu ngoặc đơn khai báo hàm để trống Ví dụ: int xoa();  Tên tham số khai báo hàm khơng cần xác định Ví dụ: float inchtomet(float, float); Ngơ Cơng Thắng - Bài giảng LTHDT - Chương 01_9 II Định nghĩa hàm Cú pháp định nghĩa hàm Lệnh return Hàm không trả giá trị Ngô Công Thắng - Bài giảng LTHDT - Chương 01_9 Cú pháp định nghĩa hàm Kiểu_trả_về Tên_hàm(Kiểu_1 Tên_tham_số_1, Kiểu_2 Tên_tham_số_2,…) { Khơng có dấu //Các lệnh hàm để Thân hàm chấm phẩy } Ví dụ: float cong(float a, float b) { float z; z = a + b; return z; } Ngô Công Thắng - Bài giảng LTHDT - Chương 01_9 Cú pháp định nghĩa hàm (tiếp)  Dòng định nghĩa hàm giống khai báo hàm, khác khơng có dấu chấm phẩy tham số bắt buộc phải có tên  Khi có khai báo hàm định nghĩa hàm thường để sau hàm main để tệp obj (lib) Để quen dần với việc viết chương trình lớn, thực hành viết khai báo hàm tệp h, định nghĩa hàm để tệp obj (lib) Ngô Công Thắng - Bài giảng LTHDT - Chương 01_9 Lệnh return  Lệnh return sử dụng hàm Lệnh return thực hai chức năng:   Làm cho hàm trở chương trình gọi Được dùng để trả giá trị  Cú pháp dùng lệnh return sau: return Giá_trị_trả_về; return;  Lệnh return dùng vị trí hàm thường cuối hàm  Với hàm có trả giá trị lệnh return bắt buộc phải có Ngơ Cơng Thắng - Bài giảng LTHDT - Chương 01_9 10 Truyền đối số theo tham chiếu  Tham chiếu (reference) tên khác biến  Khi truyền đối số theo tham chiếu hàm không tạo biến mà thao tác trực tiếp biến đối số Kết tác động hàm làm thay đổi giá trị đối số  Để truyền đối số cho hàm theo tham chiếu khai báo hàm ta phải thêm dấu & vào bên phải tên kiểu tham số Ví dụ: void DoiCho(int &a, int &b);  Các đối số truyền tới hàm theo tham chiếu biến khơng giá trị Ngô Công Thắng - Bài giảng LTHDT - Chương 01_9 20 Truyền đối số theo tham chiếu (tiếp) Ví dụ: Đổi chỗ giá trị biến void DoiCho(int &a,int &b); DoiCho(x,y); …… void DoiCho(int& a,int& b) { int tmp=a; a=b; b=tmp; } Ngô Công Thắng - Bài giảng LTHDT - Chương 01_9 21 Truyền đối số theo tham chiếu (tiếp)  Khi đối số đối tượng truyền theo tham chiếu tốt Bởi truyền theo tham chiếu hàm khơng phải copy đối tượng mà thao tác trực tiếp đối tượng đối số Với đối tượng lớn cách tiết kiệm nhớ thời gian thực chương trình Ngơ Cơng Thắng - Bài giảng LTHDT - Chương 01_9 22 Truyền trỏ tới hàm  Để truyền trỏ tới hàm ta phải thực hai bước:   Khai báo tham số (khi khai báo định nghĩa) trỏ Khi gọi hàm đối số truyền cho hàm địa Ví dụ: void DoiCho(int* a, int* b); int x = 12,y = 15; DoiCho(&x,&y); Ngô Công Thắng - Bài giảng LTHDT - Chương 01_9 23 Truyền trỏ tới hàm (tiếp)  Khi truyền trỏ tới hàm biến trỏ trỏ tới bị thay đổi hàm Ví dụ: Đổi chỗ giá trị hai biến void DoiCho(int* a,int* b); DoiCho(&x,&y); void DoiCho(int* a,int* b) { int tmp = *a; *a = *b; *b = tmp; } Ngô Công Thắng - Bài giảng LTHDT - Chương 01_9 24 Truyền mảng tới hàm  Khi tên mảng sử dụng mà số kèm theo địa bắt đầu mảng Do đó, dùng mảng làm đối số truyền tới hàm có địa mảng truyền tới hàm tồn mảng Điều có nghĩa khai báo tham số hàm tham số phải có kiểu trỏ  Bởi địa mảng truyền tới hàm nên thay đổi hàm lên mảng giữ nguyên hàm kết thúc Ngô Công Thắng - Bài giảng LTHDT - Chương 01_9 25 Truyền mảng tới hàm (tiếp)  Ví dụ: Viết hàm đưa phần tử mảng void print(int* m, int n); int x[7]={2,5,8,1,6,7,10}; print(x,7); void print(int* m, int n) { for(int i=0;i

Ngày đăng: 30/06/2023, 08:58

Tài liệu cùng người dùng

Tài liệu liên quan