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

Đề tài: Từ khóa const sau tên hàm

  1. #1
    Ngày gia nhập
    08 2013
    Bài viết
    0

    Post Từ khóa const sau tên hàm

    Mọi người cho mình hỏi từ khóa const đi sau tên hàm có ý nghĩa gì?
    Ví dụ:
    Code:
    int bp(int a) const
    {
        return a*a;     
    }

  2. #2
    Ngày gia nhập
    07 2011
    Bài viết
    422

    có nghĩa là con trỏ this sẽ được truyền vào theo kiểu constant. Vd tên class là A, thì mỗi phương thức (non-static) của A đều được truyền vào con trỏ this tới object gọi phương thức đó, nên phương thức đó có quyền truy cập tới mọi dữ liệu của object gọi phương thức đó. Bình thường thì this là A*. Thêm const vô phía sau tên hàm thì this thành const A*

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

    Tôi hoàn toàn không hiểu. Bác nhầm lần giữa con trỏ và tham chiếu chăng. Với mục đích của function() const{} wiki viết đâu có giống thế.

  4. #4
    Ngày gia nhập
    01 2013
    Bài viết
    1,476

    Trích dẫn Nguyên bản được gửi bởi shjnjchj1786 Xem bài viết
    Tôi hoàn toàn không hiểu. Bác nhầm lần giữa con trỏ và tham chiếu chăng. Với mục đích của function() const{} wiki viết đâu có giống thế.
    https://stackoverflow.com/questions/3141087/what-is-meant-with-const-at-end-of-function-declaration

    Ngoài ra chỉ những phương thức const mới có thể gọi trên đối tượng const.

  5. #5
    Ngày gia nhập
    02 2016
    Bài viết
    259

    Trích dẫn Nguyên bản được gửi bởi shjnjchj1786 Xem bài viết
    Tôi hoàn toàn không hiểu. Bác nhầm lần giữa con trỏ và tham chiếu chăng. Với mục đích của function() const{} wiki viết đâu có giống thế.
    Theo bạn thì wiki nó nói mục đích ra sao?

    Con trỏ this là một tham được truyền ngầm trên chữ ký (prototype) của hàm. (Vì nó hiển nhiên quá cho nên ngôn ngữ tự động đặt nó vào dạng khai báo ngầm).
    Giải thích của bài #2 có nghĩa là khi có từ kháo const đi ngay sau danh sách tham thì cái tham hiểu ngầm this này được coi như const this.

    Đối với người dùng, const đại khái có nghĩa là hàm "hứa" không (trực tiếp) thay đổi thuộc tính của đối tượng.
    Nếu class có lập hàm chồng cho hàm này, thì trình dịch sẽ tự động nối hàm const cho đối tượng const, và hàm không const cho đối tượng thường.

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