Computer >> Máy Tính >  >> Lập trình >> C ++

Làm thế nào để truyền các đối tượng cho các hàm trong Chương trình C ++?

Có bốn cách để chuyển các đối tượng cho các hàm. Giả sử bạn có một lớp X và muốn chuyển nó cho một hàm fun, sau đó

Truyền theo giá trị

Điều này tạo ra một bản sao cục bộ nông của đối tượng trong phạm vi chức năng. Những thứ bạn sửa đổi ở đây sẽ không được phản ánh trong đối tượng được chuyển đến nó. Ví dụ,

Tuyên bố

void fun(X x);

Gọi điện

X x;
fun(x);

Chuyển qua tài liệu tham khảo

Điều này chuyển một tham chiếu đến đối tượng cho hàm. Những thứ bạn sửa đổi ở đây sẽ được phản ánh trong đối tượng được chuyển tới nó. Không có bản sao của đối tượng được tạo. Ví dụ,

Tuyên bố

void fun(X &x);

Gọi điện

X x;
fun(x);

Chuyển qua tham chiếu const

Điều này chuyển một tham chiếu const đến đối tượng cho hàm. Bạn không thể sửa đổi / gán lại đối tượng ở đây trực tiếp (bạn có thể sử dụng các phương thức của nó để làm như vậy). Điều này rất hữu ích nếu bạn muốn hàm chỉ có một bản sao chỉ đọc của đối tượng. Không có bản sao của đối tượng được tạo. Ví dụ,

Tuyên bố

void fun(X const *x);

Gọi điện

X x;
fun(&x);

Chuyển qua con trỏ const

Điều này chuyển một con trỏ const đến đối tượng đến hàm. Bạn không thể sửa đổi / gán lại con trỏ ở đây. Điều này rất hữu ích nếu bạn muốn hàm chỉ có địa chỉ của đối tượng này trong con trỏ. Không có bản sao của đối tượng được tạo. Ví dụ,

Tuyên bố

void fun(X *x);

Gọi điện

X x;
fun(&x);

Chuyền bằng con trỏ

Điều này chuyển một con trỏ đến đối tượng cho hàm. Điều này tương tự như truyền một tham chiếu đến đối tượng. Không có bản sao của đối tượng được tạo. Ví dụ,

Tuyên bố

<void fun(X *x);>

Gọi điện

X x;
fun(&x);