Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: lvalue required as left operand of assignment

  1. #1
    Ngày gia nhập
    03 2011
    Bài viết
    1

    Mặc định lvalue required as left operand of assignment

    mình thắc mắc tí.
    mình tạo 1 list mới, dùng method copy có sẵn, copy cái list 1 gán vào nó thì code như sau:

    PolyList *List_new;
    List_new = this->copy();

    vậy có thể hiểu là mình copy cái list1 cho vào list_new ko? 2 dòng trên ko báo lỗi.

    còn nữa, khi mình gán lại là : this = List_new->copy();
    thì compiler báo lỗi liền: lvalue required as left operand of assignment.

    vậy phép gán đó sai chỗ nào? cần sửa lại thế nào là đúng :P

  2. #2
    Ngày gia nhập
    12 2008
    Nơi ở
    Hà Nội
    Bài viết
    374

    Mình chả hiểu vấn đề của bạn, vì code đưa lên ít quá và chả rõ ràng, nhưng lỗi bạn đưa lên làm mình nhớ lại lvalues và rvalue => mình lại phải đọc lại tài liệu để chắc chắn, hè hè.

    Theo mình, hiểu đơn giản, lvalue là đối tượng vẫn tồn tại sau 1 biểu thức ; còn rvalue là 1 giá trị tạm, không tồn tại sau 1 biểu thức.

    Ví dụ :

    C++ Code:
    1. int i = 0;
    2. i = 4; // xét biểu thức này

    Thì i là lvalue, và 4 là rvalue.

    Trong C++ thì tất cả các biến kể cả const đều là lvalue. Và toán hạng bên trái của toán tử gán ( = ) phải là 1 lvalue.

    Vậy nên mình nghĩ, this trong this = List_new->copy(); không phải là 1 lvalue. Vậy nên xảy ra lỗi theo mình dịch là : Toán hạng bên trái của toán tử gán yêu cầu lvalue.

  3. #3
    Ngày gia nhập
    09 2012
    Bài viết
    24

    Định nghĩ lvalue: là 1 biến tham chiếu tới địa chỉ bộ nhớ, ko thể có giá trị. Trong trường hợp của bạn biến có giá trị là this (vì tham chiếu đến class hiện tại), còn biến cần gán là List_new. Nhưng code bạn đưa ra mình cũng ko hiểu ý bạn muốn làm, nhưng mình khuyên bạn ko nên dùng this nhiều, rất dễ gây confused cho người đọc!
    Hơn nữa, this là 1 pointer, chỉ chứa địa chỉ, ko chứa giá trị, muốn gán giá trị phải dùng *this

Các đề tài tương tự

  1. Bài tập C Thứ tự ưu tiên của phép toán. lỗi non-lvalue assignment
    Gửi bởi giangcoi92 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 14
    Bài viết cuối: 28-02-2012, 11:17 PM
  2. Lỗi Lvalue required trong C sửa như thế nào?
    Gửi bởi key trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 09-03-2011, 10:21 AM
  3. Lỗi Lvalue required trong lập trình C là lỗi gì?
    Gửi bởi nh0ck0n10b trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 30-01-2011, 05:39 AM
  4. Viết chương trình quản lý học sinh , code bị lỗi Lvalue required , cần giúp đỡ
    Gửi bởi chizro trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 17-10-2010, 11:38 PM
  5. Thắc mắc về việc báo lỗ i'=' : left operand must be l-value
    Gửi bởi vietsieutoc trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 24-03-2010, 09:31 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn