Tham số hình thức
Các tham số được truyền vào hàm là cục bộ. Phạm vi là khối hàm. Các tham số hình thức phải có tên khác với tên của các biến bên ngoài và các biến cục bộ được định nghĩa trong cùng một hàm. Một số giá trị có thể được gán cho các tham số hình thức trong khối hàm. Nếu một tham số hình thức được khai báo với bộ sửa đổi const
, giá trị của nó không thể thay đổi trong hàm.
Ví dụ:
void func(const int & x[], double y, bool z)
{
if(y>0.0 && !z)
Print(x[0]);
...
}
2
3
4
5
6
Các tham số hình thức có thể được khởi tạo bằng hằng số. Trong trường hợp này, giá trị khởi tạo được coi là giá trị mặc định. Các tham số tiếp theo sau tham số đã được khởi tạo cũng phải được khởi tạo.
Ví dụ:
void func(int x, double y = 0.0, bool z = true)
{
...
}
2
3
4
Khi gọi một hàm như vậy, các tham số đã được khởi tạo có thể được bỏ qua, giá trị mặc định sẽ được thay thế vào đó.
Ví dụ:
func(123, 0.5);
Các tham số của kiểu đơn giản được truyền theo giá trị, tức là việc sửa đổi biến cục bộ tương ứng của kiểu này bên trong hàm được gọi sẽ không được phản ánh trong hàm gọi. Mảng của bất kỳ kiểu nào và dữ liệu của kiểu cấu trúc luôn được truyền theo tham chiếu. Nếu cần cấm sửa đổi nội dung mảng hoặc cấu trúc, các tham số của những kiểu này phải được khai báo với từ khóa const
.
Có khả năng truyền các tham số của kiểu đơn giản theo tham chiếu. Trong trường hợp này, việc sửa đổi các tham số đó bên trong hàm gọi sẽ ảnh hưởng đến các biến tương ứng được truyền theo tham chiếu. Để chỉ ra rằng một tham số được truyền theo tham chiếu, đặt bộ sửa đổi & sau kiểu dữ liệu.
Ví dụ:
void func(int& x, double& y, double & z[])
{
double calculated_tp;
...
for(int i=0; i<OrdersTotal(); i++)
{
if(i==ArraySize(z)) break;
if(OrderSelect(i)==false) break;
z[i]=OrderOpenPrice();
}
x=i;
y=calculated_tp;
}
2
3
4
5
6
7
8
9
10
11
12
13
Các tham số được truyền theo tham chiếu không thể được khởi tạo bằng giá trị mặc định.
Tối đa 64 tham số có thể được truyền vào một hàm.
Xem thêm
Biến đầu vào, Kiểu dữ liệu, Đóng gói và mở rộng kiểu, Khởi tạo biến, Phạm vi hiển thị và tuổi thọ của biến, Tạo và xóa đối tượng