- from alpha to omeg a
2. a=20; // lỗi vì cố tình sủa đổi tham chiếu hằng 3 return a;
3. return a;
4. }
Việc sử dụng tham chiếu hằng như trên là một ví dụ về nguyên tắc “quyền ưu tiên tối
thiểu” (the principle of least privilege), một nguyên tắc nền tảng trong lập trình. Trong
trường hợp này nghĩa là chỉ trao cho hàm min những quyền ưu tiên tối thiểu thao tác trên dữ liệu để nó đủ thực hiện nhiệm vụ, không hơn. Rõ ràng hàm min chỉ cần so sánh hai đối số truyền vào để xem thằng nào nhỏ hơn rồi trả về giá trị. Vì vậy truyền theo tham chiếu hằng là phương án đảm bảo nguyên tắc trên.
Truyền cấu trúc dữ liệu (passing data structures)
Tạm thời mình chỉ giới thiệu cấu trúc đơn giản nhất là mảng (arrays). Còn những cấu trúc dữ liệu phức tạp hơn, nếu có điều kiện mình sẽ nói trong dịp khác. Như ta biết tên mảng là một con trỏ hằng, trỏ đến phần tử đầu tiên của mảng. Vì vậy truyền mảng giống như truyền con trỏ vậy. Chương trình sau gọi hàm input để nhập các phần tử vào một mảng, và output để xuất các phần tử của mảng:
C++ Code:
1. #include <iostream>
2. using namespace std;
3.
4. void input(int*, int); // nguyên mẫu hàm input
5. void output(int*, int); // nguyên mẫu hàm output
6.
34 Hướng dẫn lập trình hướng đối tượng với C++_ first_pace Hướng dẫn lập trình hướng đối tượng với C++_ first_pace
8. int num; // biến lưu số lượng phần tử mảng 9. int *ptr; // con trỏ quản lý mảng 9. int *ptr; // con trỏ quản lý mảng
10.
11. cout << "Enter number of elements: " << endl; 12. cin >> num; // nhập số lượng phần tử mảng 12. cin >> num; // nhập số lượng phần tử mảng