30/09/2018, 18:41

Truyền con trỏ bằng tham chiếu trong C++ / Pass a Pointer by Reference in C++

Như tiêu đề ở trên, mọi người cho e hỏi là khi nào cần truyền con trỏ bằng tham chiếu trong C++.
Ví dụ như void myfunc(string*& val)
{
}

Ha Gia Phat viết 20:45 ngày 30/09/2018

khi bạn muốn ảnh hưởng trực tiếp đến địa chỉ mà con trỏ trỏ tới thôi (giá trị của con trỏ), cũng giống như khi bạn truyền tham chiếu các biến khác

明玉 viết 20:42 ngày 30/09/2018

Cho mình xin bổ sung:

Truyền tham chiếu thay vì truyền tham trị rất có ích khi parameter là những kiểu dữ liệu cỡ bự như std::string, std::vector… dùng tham trị thì khi chạy, cả cái biến (gồm một đống biến thành phần) sẽ được copy vào hàm, còn dùng tham chiếu thì thực tế khi chạy, chỉ có pointer được copy vào hàm thôi (bị che dấu đi bởi trừu tượng của C++).

Nếu ai dùng thư viện Qt sẽ thấy rất nhiều hàm trong đó sử dụng biến là tham chiếu cũng vì lý do trên

Bài liên quan
0