Trong thực tiễn lập trình, do có một số biến chiếm vùng bộ nhớ khá lớn, chẳng hạn những hình ảnh khoảng vài megabyte, những đối tượng kích thước lớn, việc tạo thêm một vùng bộ nhớ địa phương trong việc chuyển giá trị sẽ tốn kém và hạn chế khả năng ứng dụng. Để không tốn thêm vùng bộ nhớ cho các loại dữ liệu này, chúng ta sử dụng hình thức chuyển tham chiếu. Tuy nhiên, việc chuyển này sẽ gặp những tai hại, trước mắt nếu có một sự thay đổi của biến địa phương sẽ làm thay đổi giá trị của tham số thực. Để khắc phục tình trạng này, giá trị không thay đổi và không tạo thêm vùng nhớ, C++ trang bị thêm hình thức chuyển hằng tham chiếu (passing by constant reference). Việc chuyển tham chiếu dạng này thường được sử dụng cho những đối tượng lớn.Những kiểu dữ liệu cơ bản như int, float,... chỉ cần sử dụng hình thức chuyển giá trị (nếu không muốn hàm làm thay đổi giá trị của nó) hoặc chuyển tham chiếu (nếu muốn hàm làm thay đổi giá trị).
Để thể hiện hình thức chuyển hằng tham chiếu, chúng ta thêm từ khóa const trước kiểu dữ liệu.
#include <iostream.h>
int func(int x, int& y, const int& z)
{
x+=z;
y+=z;
cout << "x = " << x << " ,y = " << y << " , z = " << z << endl
return 1;
}
int main()
{
int a = 11, b = 22, c = 33;
cout << "a = " << a << ", b = " << b << ", c = " << b << endl;
func (a, b, c);
cout << "a = " << a << ", b = " << b << ", c = " << b << endl;
return 1;
}
Kết quả :
a = 11, b = 22, c = 33
x = 44, y = 55, z = 33
a = 11, b = 55, c = 33
Không có nhận xét nào:
Đăng nhận xét