Out-parameter là gì?

Noun Programming

Trong lập trình, cụ thể là trong ngôn ngữ lập trình C++, out-parameterđại diện cho thông tin được truyền (pass) từ hàm (function) trở lại caller của nó. Hàm thực hiện điều đó bằng cách lưu trữ một giá trị vào tham số (parameter) đó. Sử dụng gọi theo tham chiếu (call by reference) hoặc gọi theo con trỏ (call by pointer) cho một out-parameter. Ví dụ hàm sau có hai in-parameter và hai out-parameter.


// divide(x,y,q,r):
//   x, y: in-parameters
//   q, r: out-parameters
// It sets
//   q = the integer quotient when you divide x by y.
//   r = the integer remainder when you divide x by y.
//
// This function uses the standard mathematical definition
// of integer division, which requires that
//
//   y > 0
//   0 = 0)
  {
    q = x/y;
    r = x % y;
  }
  else
  {
    r = y - ((-x) % y);
    q = (x - r)/y;
  }
}

Khi một mảng là một out-parameter, nơi bạn muốn lưu trữ thông tin vào mảng, hãy truyền nó bằng con trỏ (pointer), không phải bằng tham chiếu (reference). Tức là chỉ cần truyền mảng, vì nó đã là một con trỏ.

Nếu bạn muốn tạo một mảng và lưu trữ mảng mới thành một tham số để caller sử dụng, hãy truyền con trỏ theo tham chiếu (Pass Pointer by Reference). Ví dụ một hàm có header sau:


int makeArray(int n, double*& A)

Có thể lưu một mảng mới vào A, caller có thể lấy mảng đó từ biến đối số (argument) tương ứng trong lời gọi (call).

Learning English Everyday