6.4.1 Truyền vào một đối tượng cho tham số của hàm

Bất kỳ đối tượng nào cũng có thể được sử dụng như một tham số của hàm, và ngược lại, bất kỳ hàm nào có thể có tham số là đối tượng của bất kỳ lớp nào.

Tất cả các quy tắc liên quan đến tham số vẫn áp dụng tốt cho các đối tượng. Hãy xem ví dụ →

Ví dụ trên sử dụng hai cách để truyền một đối tượng vào một hàm:

  • Cách 1: truyền bằng con trỏ
  • Cách 2: truyền bằng tham chiếu

Thực ra truyền vào con trỏ cũng là một hình thức của truyền tham trị (tức là truyền giá trị) bởi vì một con trỏ chỉ là một loại giá trị đặc biệt cho phép việc sửa đổi trạng thái của một đối tượng (được khai báo bên ngoài hàm) có thể được thực hiện bên trong hàm.

Có 2 hàm trong ví dụ. Cả hai đều có hai tham số, nhưng chúng ta nên quan tâm đặc biệt đến hàm thứ 2. Hàm đầu tiên (PlayWithPetByPointer) sử dụng một con trỏ còn hàm thứ 2 (PlayWithPetByReference) sử dụng một tham chiếu. Trong cả hai hàm thì đối tượng cần sử dụng đều là đối tượng của lớp Pet.

Chúng ta tạo ra hai đối tượng trong hàm main: Đối tượng đầu tiên được xử lý bởi một con trỏ (p1) và được tạo bởi từ khoá new. Đối tượng thứ hai (p2) là một biến.

Chúng ta gọi mỗi hàm hai lần như các bạn đã thấy. Chương trình sẽ cho ra kết quả như sau: