Cách thực hiện cuộc gọi bằng tham chiếu trong C ++



Bài viết này sẽ cung cấp cho bạn kiến ​​thức chuyên sâu về Gọi theo tham chiếu trong C ++ với Triển khai và nó khác với Gọi theo giá trị như thế nào.

Làm việc với C ++ không phải là một nhiệm vụ khó khăn nếu bạn đã có nền tảng về C vì cả hai đều chia sẻ rất nhiều khái niệm với nhau. Tuy nhiên, C ++ có một số khái niệm không phải là một phần của mô hình C. Trong bài viết Gọi bằng tham chiếu trong C ++ này, chúng ta sẽ nói về một khái niệm như vậy là các biến tham chiếu và các ứng dụng của nó theo thứ tự sau:

Các biến tham chiếu

C ++ cung cấp cho chúng ta một loại biến mới, tức là một biến tham chiếu. Chúng ta có thể coi một biến tham chiếu như một biệt hiệu cho biến ban đầu của chúng ta. Đó là chức năng chính xác của một biến tham chiếu trong một dòng.





Ví dụ, nếu tên bạn là Harrison nhưng ở nhà, các thành viên trong gia đình bạn gọi bạn là Harry. Bây giờ chúng ta hãy xem qua một số chi tiết về các biến tham chiếu. Việc khai báo và sử dụng loại biến này khác với các biến thông thường chúng ta sử dụng nhưng rất giống với các biến con trỏ.

Cú pháp:



int Hello = 1 int * ptr int & World = Xin chào

Khi chúng ta tạo một biến ‘Hello’ có chứa giá trị ‘1’, một phân đoạn bộ nhớ được sử dụng để ghi giá trị ‘1’, tên của phân đoạn này sẽ là ‘Xin chào’ và địa chỉ của phân đoạn này sẽ là một số giá trị hex chẳng hạn.0x64. khi chúng tôi viếtint& World = Xin chàoBiến ‘thế giới’ được tạo sẽ trỏ đến cùng một vị trí bộ nhớ.

Bao gồm dòng World ++ sẽ thay đổi địa chỉ 0x64, điều này có nghĩa là giá trị của biến ‘Hello’ cũng sẽ thay đổi. Một số có thể chỉ ra rằng các biến tham chiếu khác với các biến con trỏ mà chúng ta sẽ thảo luận trong phần sau của bài đăng này.

Gọi theo giá trị và Gọi theo tham chiếu trong C ++

Gọi theo giá trị: Gọi theo giá trị là một phương pháp được sử dụng rộng rãi. Hầu hết các trường hợp, bạn sẽ sử dụng phương pháp gọi theo giá trị vì bạn không muốn các giá trị ban đầu của các biến bị thay đổi. Do đó, chúng tôi đã sử dụng phương thức gọi theo giá trị để gọi một hàm, chỉ giá trị của các biến được truyền. Điều này đạt được bằng cách tạo các biến giả trong bộ nhớ.



#include using namespace std void add (int a, int b) {a = a + 10 b = b + 10 cout<<'Value of a = '<  Gọi theo giá trị trong C ++

Từ hình trên, chúng ta có thể thấy rằng ngay sau khi chúng ta gọi hàm add (), các giá trị của biến x và y được sao chép vào biến a và b. A và b là các biến giả.

Gọi bằng cách tham khảo: Bây giờ, hãy nói về cuộc gọi theo phương pháp tham chiếu. Trong phương thức này, các biến giả riêng biệt không được tạo, một tham chiếu của một biến đã tồn tại sẽ được chuyển đến phương thức. Tham chiếu này trỏ đến cùng một vị trí bộ nhớ do đó các bản sao riêng biệt không được tạo trong bộ nhớ. Điểm quan trọng cần lưu ý ở đây là những thay đổi được thực hiện trong các biến tham chiếu được phản ánh trong biến giả.

#include using namespace std void add (int & a, int & b) {a = a + 10 b = b + 10 cout<<'Value of a = '< int & min (int & a, int & b) {if (a 

Như chúng ta có thể thấy rằng hàm trên trông khác so với các hàm bình thường vì kiểu trả về là ‘int &’. Hàm này trả về một tham chiếu đến a hoặc b tùy thuộc vào điều kiện. Điểm quan trọng cần lưu ý ở đây là các giá trịkhông được trả lại.

Nếu chúng ta gọi hàm min (x, y) = 10. 10 sẽ được gán cho x nếu nó là cực tiểu hoặc cho y nếu y là nhỏ nhất.

Gọi bằng con trỏ tham chiếu Vs

Trong tất cả các ví dụ của chúng tôi, chúng tôi đã thấy chúng tôi luôn gán một giá trị cho biến tham chiếu mà chúng tôi đã tạo vì các biến tham chiếu không thể là NULL trong khi biến con trỏ có thể là NULL và có thể gây ra lỗi không mong muốn.

Các biến tham chiếu không thể được gán lại trong khi các biến con trỏ có thể trỏ đến một số biến khác sau này trong chương trình.

Một biến con trỏ giữ giá trị địa chỉ của một biến cụ thể trong khi địa chỉ của biến tham chiếu giống với địa chỉ của biến mà nó đang tham chiếu.

Với điều này, chúng ta sẽ kết thúc bài viết Call By Reference trong C ++ này. Tôi hy vọng bạn đã hiểu về cách triển khai khác nhau của lệnh gọi theo Giá trị và tham chiếu và cả hai đều khác nhau như thế nào.

Nếu bạn muốn tìm hiểu thêm, hãy xem bởi Edureka, một công ty học trực tuyến đáng tin cậy. Khóa học đào tạo và cấp chứng chỉ Java J2EE và SOA của Edureka được thiết kế để đào tạo bạn về cả khái niệm Java cốt lõi và nâng cao cùng với các khung Java khác nhau như Hibernate & Spring.

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của blog này và chúng tôi sẽ liên hệ lại với bạn trong thời gian sớm nhất.