Danh mục

Ngôn ngữ lập trình C++ 1 - Tuần 6

Số trang: 27      Loại file: ppt      Dung lượng: 173.50 KB      Lượt xem: 10      Lượt tải: 0    
10.10.2023

Phí tải xuống: 18,000 VND Tải xuống file đầy đủ (27 trang) 0
Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Tham chiếu là một bí danh của biến khác.Khi tạo ra một tham chiếu, gán nó lên một biến khác thì tham chiếu hoạt động như chính biến đã gán đến nó.
Nội dung trích xuất từ tài liệu:
Ngôn ngữ lập trình C++ 1 - Tuần 6NGÔN NGỮ LẬP TRÌNH C++ 1 Tuần 6 Nội dung trình bày• Tham chiếu và hàm có nhiều giá trị trả về.• Hàm có đối số mặc định• Quá tải hàm• Hàm inline• Hàm đệ quy Tham chiếu là gì ?• Tham chiếu là một bí danh của biến khác.• Khi tạo ra một tham chiếu, gán nó lên một biến khác thì tham chiếu hoạt động như chính biến đã gán đến nó.• Cú pháp: &Tên tham chiếu = Biến đã tồn tại;• Ví dụ: int a = 6; int &b = a; Tham chiếu là gì ?• Tham chiếu tương tự trong thực tế như một người có thể được gán một bí danh khác (một người có nhiều tên gọi khác nhau).• Trong mô hình bộ nhớ máy tính thì địa chỉ của tham chiếu chính là địa chỉ của biến mà nó tham chiếu đến. Tham chiếu là gì ?• Ta không thể gán thêm một lần nữa tên của tham chiếu cho một biến khác. int a = 5; int b = 8; int &c = a; &c = b; // Lỗi tại đây• Kiểu dữ liệu của tham chiếu phải trùng với kiểu dữ liệu của biến mà nó tham chiếu đến. Tham chiếu là gì ?• Ta có thể tham chiếu đến một bí danh (cũng là một tham chiếu) int a = 5; int &b = a; int &c = b;• Ta chỉ được tham chiếu đến một biến cụ thể chứ không được tham chiếu đến một kiểu dữ liệu. int &x = int; // Lỗi tại đây Truyền tham chiếu cho hàm• Nhắc lại về truyền tham trị: – Đối số truyền cho hàm là các tham trị – Ví dụ: void Doicho(int x, int y) { int tam; tam=x; x=y; y=tam; } – Giá trị của các tham số hình thức x, y chỉ được đổi chỗ cho nhau trong pham vi của hàm. Nhưng giá trị các tham số thực sẽ không đổi chỗ được cho nhau. Truyền tham chiếu cho hàm• Truyền tham chiếu cho hàm: – Để các tham số thực có thể đổi chỗ được cho nhau, ta thay các đối số truyền cho hàm là các tham trị. – Ví dụ: void Doicho(int &x, int &y) { int tam; tam=x; x=y; y=tam; } – Khi goi hàm, biến được truyền trưc tiếp, 2 giá trị x và y thực sự được đổi chỗ cho nhau int a = 5, b = 8; Doicho(a, b); Hàm trả về nhiều giá trị• Ta đã học hàm trả về một giá trị, đó chính là giá trị trả về cho hàm (thông qua câu lệnh return)• Chúng ta sẽ sử dụng kỹ thuật truyền tham chiếu để thay đổi các biến ngoài ngay bên trong hàm, và như vậy ta có thể coi hàm “trả về” nhiều giá trị. Hàm trả về nhiều giá trị• Ví dụ: – Xây dựng hàm trả về giá trị của diện tích và chu vi hình tròn với đầu vào là bán kính r void HinhTron(float r, float &dientich, float &chuvi) { dientich = 3.14 * r * r; chuvi = 2 * 3.14 * r; } – Khi gọi hàm phải truyền biến vào tham chiếu để nhận giá trị trả về HinhTron(r, dt, cv); Hàm có đối số mặc định• Hàm có đối số mặc định là hàm chứa đối số mà giá trị của đối số được xác định trước ngay ở phần khai báo hàm (đối số mặc định) – Ví dụ: void f (int x = 1) { …. } Hàm có đối số mặc định• Nếu ta không truyền tham số thực vào cho hàm tại đối số có giá trị mặc định thì đối số tại vị ví trí đó sẽ tự động nhận giá trị mặc định làm giá trị của đối số. – Ví dụ: Nếu ta gọi hàm như sau: f(5); thì x sẽ nhận giá trị 5 Nếu ta gọi hàm như sau: f(); thì x sẽ nhận giá trị 1 Hàm có đối số mặc định• Các đối mặc định phải là các đối số cuối cùng tính từ trái sang phải. – Ví dụ: • Các hàm có đối số mặc định sau là đúng: int tinhToan(int x, int y = 7); void soThuc(float x, int y = 12, float z = 1.1); • Các hàm có đối số mặc định sau là sai: int tinhToan(int x = 6, int y); void soThuc(float x = 2.3, int y = 12, Quá tải hàm (Overloading Function)• Trong ngôn ngữ C và các ngôn ngữ khác, ta thấy rằng mỗi hàm đảm nhận một chức năng nào đó đều có một tên riêng biệt.• Tuy nhiên có nhiều hàm có cùng một ý nghĩa nhưng lại có tên gọi nhau do giá trị đầu vào hay giá trị trả về của hàm có kiểu dữ liệu khác nhau. – Ví dụ: Trong C có 3 hàm trả về giá trị tuyệt đối: int abs(int i); long labs(long l); double fabs(double d); Quá tải hàm• C++ cho phép tạo ra các hàm khác nhau có tên trùng nhau. Đây chính là quá tải hàm.• Ví dụ: int abs(int i); long abs(long i); double abs(double d); int Tong(int a, int b); int Tong(int a, int b, int c); long Tong(long a, long b); Các đặc điểm của quá tải hàm• Các hàm quá tải có những đặc điểm sau: – Số lượng tham số của các hàm quá tải có thể khác nhau. Nếu số lượng tham số trùng nhau thì kiểu dữ liệu của các tham số phải khác nhau. – Giá trị trả về của các hàm quá tải có thể trùng hoặc khác nhau miễn là tham số phải khác nhau. Các đặc điểm của quá tải hàm• Các khai báo sau sẽ bị báo lỗi khi biên dịch: int Tong(int a, int b); long Tong(int a, int b);• C ...

Tài liệu được xem nhiều: