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

Đề tài: vì sao "const" và "&" đi chung với nhau?

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

    Mặc định vì sao "const" và "&" đi chung với nhau?

    mọi người cho em hỏi công dụng của từ khóa "const" và ký hiệu "&" trong những khai báo sau:

    a) PhanSo PhanSo::cong(const PhanSo &p);
    b) int & Mang::layPhanTu(int iViTri) const;

    Cái em ko biết ở đây là 2 cái đó đi chung có tác dụng gì chứ ko phải là tác dụng riêng của từng cái.Mong mọi người giúp đỡ. Thank All

  2. #2
    Ngày gia nhập
    04 2007
    Bài viết
    134

    2 cái này đi chung có tác dụng = Cộng 2 tác dụng của từng cái đi riêng. Đơn giản là vậy

    Và cũng nói luôn là nó đi chung ko có ảnh hưởng gì đến nhau cả, cũng như là anh làm phần việc A của anh, tui làm phần việc B của tui. Ai cần cả A lẫn B thì phải cho anh với tui làm chung.
    Đã được chỉnh sửa lần cuối bởi Lugia : 10-03-2009 lúc 08:01 PM.

  3. #3
    Ngày gia nhập
    11 2006
    Bài viết
    633

    Lugia biết thì nói ko thì đừng spam nhé.
    Dấu & là để truyền biến vào hàm theo dạng tham chiếu nhưng dấu const là để xác nhận rằng biến tham chiếu này được đưa vào hàm với tư cách là hằng số. Cách ghi này để làm rõ ràng thôi chứ nó cũng tương đương tham trị, khác cái là nó dùng con trỏ tốn 4 byte thay vì phải tạo thêm 1 đối tượng tốn nhiều byte hơn.

  4. #4
    Ngày gia nhập
    03 2009
    Bài viết
    16

    Trích dẫn Nguyên bản được gửi bởi huynguyen Xem bài viết
    Lugia biết thì nói ko thì đừng spam nhé.
    Dấu & là để truyền biến vào hàm theo dạng tham chiếu nhưng dấu const là để xác nhận rằng biến tham chiếu này được đưa vào hàm với tư cách là hằng số. Cách ghi này để làm rõ ràng thôi chứ nó cũng tương đương tham trị, khác cái là nó dùng con trỏ tốn 4 byte thay vì phải tạo thêm 1 đối tượng tốn nhiều byte hơn.
    Như vậy là 2 cái này đi chung chỉ có tác dụng = tác dụng của 2 thăng cộng lại thôi à.

  5. #5
    Ngày gia nhập
    04 2007
    Bài viết
    134

    Thì đã bảo rồi, cộng 2 tác dụng lại. Còn vì sao nó đi chung thì cũng như tui nói, là vì người ta cần cả 2 tác dụng nên cho nó đi chung chứ sao =))

    Nói vậy là đúng rồi, spam thế nào

  6. #6
    Ngày gia nhập
    11 2006
    Bài viết
    633

    Mặc định vì sao "const" và "&" đi chung với nhau?

    Như vậy là 2 cái này đi chung chỉ có tác dụng = tác dụng của 2 thăng cộng lại thôi à.
    Hiểu như thế thì tui hết biết nói sao luôn.
    Cả Lugia cũng thế nữa à?
    Chương trình của bạn sẽ nhẹ nhàng hơn khi khởi tạo 1 biến 4 byte hay là khởi tạo thêm 1 biến nặng cả chục byte? Lợi ích của const & nó nằm ở chỗ đó đó. Cái thứ 2 nữa nó sẽ giúp bạn an toàn khi debug nếu chẳng may bạn gán giá trị cho biến đó (trình debug sẽ ko báo lỗi nếu bạn dùng 1 biến tham trị nhưng sẽ báo lỗi nếu bạn dùng 1 biến tham chiếu dưới dạng const).

  7. #7
    Ngày gia nhập
    01 2008
    Nơi ở
    UIT
    Bài viết
    129

    Trích dẫn Nguyên bản được gửi bởi cucxabong Xem bài viết
    mọi người cho em hỏi công dụng của từ khóa "const" và ký hiệu "&" trong những khai báo sau:

    a) PhanSo PhanSo::cong(const PhanSo &p);
    b) int & Mang::layPhanTu(int iViTri) const;

    Cái em ko biết ở đây là 2 cái đó đi chung có tác dụng gì chứ ko phải là tác dụng riêng của từng cái.Mong mọi người giúp đỡ. Thank All
    a) Truyền theo tham chiếu (reference) nhưng không muốn làm thay đổi trị của biến. Bình thường thì ko thấy nhiều tác dụng nhưng trong những chương trình lớn, cần truyền các object có kích thước lớn sẽ thấy ưu điểm của nó.

    b) Hàm hằng - dùng để lấy giá trị của các const object hay các object bình thường.

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

  1. nghĩa của 3 từ "principals", "artifacts", "securables" là như thế nào?
    Gửi bởi ntbao trong diễn đàn English for IT | Tiếng anh cho dân CNTT
    Trả lời: 2
    Bài viết cuối: 02-09-2017, 06:36 PM
  2. Lập trình C++ Sự khác nhau perror("") và fprintf(stderr,"...")
    Gửi bởi KaitoKid trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 24-10-2013, 10:02 PM
  3. Problems : " recover tree " with input as " preorder" and "inorder"
    Gửi bởi HoangManhHa1991 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 16
    Bài viết cuối: 13-04-2011, 10:19 PM
  4. Lập trình C++ khai báo biến "int" "float" khác nhau như thế nào? (giúp em gấp)
    Gửi bởi hacphieu trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 02-04-2011, 10:57 AM
  5. Sự khác nhau giữa có và không có "const"???
    Gửi bởi guest trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 3
    Bài viết cuối: 13-05-2008, 06:52 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