cuốn sách gpt4 ai đã làm

C++ Sự khác biệt giữa các tham chiếu Const đến các đối tượng không phải Const và các tham chiếu không phải Const đến các đối tượng không phải Const

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 15:00:06 27 4
mua khóa gpt4 Nike

Mục đích của việc tham chiếu từ khóa "const" là gì nếu đối tượng được tham chiếu không phải là đối tượng const? Có sự khác biệt nào giữa chức năng của r1 và r2 (bên dưới) không?

int i = 42; // không phải đối tượng const
const int &r1 = i; // const tham chiếu tới đối tượng không phải const

int j = 25; // không phải đối tượng const
int &r2 = j; // tham chiếu không phải const tới đối tượng không phải const

Trích dẫn từ CPP Primer thứ 5:

"Các lập trình viên C++ có xu hướng viết tắt cụm từ "tham chiếu đến hằng số" thành "tham chiếu không đổi". "Từ viết tắt có ý nghĩa - nếu bạn nhớ thì đó là từ viết tắt. Về mặt kỹ thuật, không có tham chiếu const. Tham chiếu không phải là đối tượng, vì vậy chúng ta không thể tự tạo tham chiếu là const. Thật vậy, vì không có cách nào để tạo tham chiếu đến một Đối tượng khác, theo nghĩa là tất cả các tham chiếu đều không đổi. Việc tham chiếu thuộc loại const hay nonconst sẽ ảnh hưởng đến những gì chúng ta có thể làm với tham chiếu đó, chứ không phải liệu chúng ta có thể thay đổi ràng buộc của chính tham chiếu đó hay không."

Tôi nghĩ điều này có nghĩa là việc tạo tham chiếu "const" khi tham chiếu đến một đối tượng không phải là hằng hoàn toàn không có tác dụng. Chúng tôi cũng có thể xóa từ khóa const khi xác định tham chiếu.

Câu hỏi này được hỏi ở đây để xác nhận.

EDIT: Có vẻ như dự đoán ban đầu của tôi đã sai. Bây giờ tôi hiểu rằng các tham chiếu const đến các đối tượng không phải là const có mục đích: ngăn chặn tham chiếu sửa đổi đối tượng. Các đối tượng không phải const vẫn có thể được sửa đổi bằng các cách khác, nhưng không phải bằng tham chiếu const này.

Cảm ơn tất cả các bạn.

câu trả lời hay nhất

"Mục đích của từ khóa "const" trên một tham chiếu là gì nếu đối tượng được tham chiếu không phải là đối tượng const?" Mục đích là ngăn chặn việc sử dụng tham chiếu để sửa đổi đối tượng mà nó đề cập đến.

int i = 42; // không phải đối tượng const
const int &r1 = i; // const tham chiếu tới đối tượng không phải const
r1 = 6 * 9; // lỗi, r1 không thể sửa đổi i;

Về sự khác biệt giữa các tham chiếu Const của C++ với các đối tượng không phải Const và các tham chiếu không phải Const với các đối tượng không phải Const, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/52103491/

27 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress