Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Toán tử tham chiếu kép (&&) trong C++

&& là toán tử tham chiếu mới được định nghĩa trong chuẩn C++11. int&& a nghĩa là "a" là tham chiếu r-value (r-value reference). && thường chỉ dùng để khai báo tham số hàm. Và nó chỉ nhận biểu thức r-value.

Đơn giản, r-value là giá trị không có địa chỉ bộ nhớ. Ví dụ: số 6, ký tự 'v' đều là r-value. int a, thì a là l-value, nhưng (a+2) là r-value.

Ví dụ

void foo(int&& a) {
    // Một số code kỳ diệu...
}
int main() {
    int b;
    foo(b);        // Lỗi. Tham chiếu r-value không thể trỏ đến l-value.
    foo(5);        // Biên dịch OK.
    foo(b + 3);    // Biên dịch OK.
    int&& c = b;   // Lỗi. Tham chiếu r-value không thể trỏ đến l-value.
    int&& d = 5;   // Biên dịch OK.
}

Đọc thêm về R-values và toán tử này tại: https://blogs.msdn.com/b/vcblog/archive/2009/02/03/rvalue-references-c-0x-features-in-vc10-part-2.aspx