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

Đề tài: [ Solved ]Hiểu rõ ràng về const ?

  1. #1
    Ngày gia nhập
    02 2008
    Nơi ở
    Future
    Bài viết
    25

    Mặc định [ Solved ]Hiểu rõ ràng về const ?

    CComplex operator+(const CComplex c);
    Khi mình để const trước tham số , thì có phải const có nghĩa chỉ rằng đối tượng c là ko thay đổi giá trị phải ko . ~~>có phải có nghĩa đen là trong main chỉ khai báo giá trị của đối tượng này 1 lần , nếu khai báo lại đối tượng này bằng 1 giá trị khác thì giá trị sau sẽ ko được cập nhật phải ko ah (thực tế e thay đổi giá trị rồi nhưng nó vẫn cập nhật lại giá trị sau khi thay đổi ,cuối cùng rối lun không biết const làm ji hết )
    Ai có thể giúp e hiểu rõ được ko ah , nếu có ví dụ luôn thì càng tốt >"<
    Bể học mênh mông , quay đầu ....là bờ !

  2. #2
    Ngày gia nhập
    08 2008
    Bài viết
    13

    const là hằng số.Bạn thay đổi giá trị thì nó sẽ báo lỗi ngay.Mình ko hiểu sao bạn có thể thay đổi được giá trị.Bạn thử post code lên xem coi

  3. #3
    Ngày gia nhập
    01 2008
    Nơi ở
    Rất nhiều sóng gió
    Bài viết
    444

    Trích dẫn Nguyên bản được gửi bởi -Xme- Xem bài viết
    CComplex operator+(const CComplex c);
    Khi mình để const trước tham số , thì có phải const có nghĩa chỉ rằng đối tượng c là ko thay đổi giá trị phải ko . ~~>có phải có nghĩa đen là trong main chỉ khai báo giá trị của đối tượng này 1 lần , nếu khai báo lại đối tượng này bằng 1 giá trị khác thì giá trị sau sẽ ko được cập nhật phải ko ah (thực tế e thay đổi giá trị rồi nhưng nó vẫn cập nhật lại giá trị sau khi thay đổi ,cuối cùng rối lun không biết const làm ji hết )
    Ai có thể giúp e hiểu rõ được ko ah , nếu có ví dụ luôn thì càng tốt >"<
    const C là tham số hằng. Khi bạn gọi lại hàm lần thứ hai thì đối tượng C mới được tạo ra, không liên quan gì đến đối tượng C lần gọi thứ nhất.

  4. #4
    Ngày gia nhập
    11 2007
    Nơi ở
    Biết để làm gì?
    Bài viết
    827

    Bạn thử đọc cái này xem
    int const GetNum();
    This function returns a const integer.

    int GetNum() const;
    The const after the function can only be used on member functions. These functions have an implicit hidden parameter, which is a pointer to the object:
    int GetNum(/* Class *this */);
    If the function is followed by const, the this pointer is const:
    int GetNum(/* const Class *this */);

    This means:
    * You can't change member variables in a function declared as const.
    * If an object is declared as const, you can only call functions that are declared const.
    * From a const member function, you can only call other member functions that are also const.
    Cánh Chym ứ mỏi

  5. #5
    Ngày gia nhập
    02 2008
    Nơi ở
    Future
    Bài viết
    25

    thz all , mình cũng đã tạm hiểu về const , gán const cho 1 biến nào đó thì sau lệnh gán đó giá trị ko thể thay đổi được nữa ^ ^ .Câu hỏi trên mình đã hiểu nhầm vấn đề , const trong hàm chỉ có tác dụng trong hàm , ko liên quan đến ngoài hàm . Thz for share
    Bể học mênh mông , quay đầu ....là bờ !

  6. #6
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Mặc định [ Solved ]Hiểu rõ ràng về const ?

    C++ Code:
    1. CComplex operator+(const CComplex c);
    Chỗ const đó vẫn chưa đủ ý nghĩa. Đúng ra phải là
    ( const CComplex& c );
    pass by const ref == pass by value;
    - cho built-in-type thì 2 cái này cũng như nhau.
    - cho user-defined-type thì pass by value quá tốn kém vì nó tạo ra temporary object( nếu đối tượng mà cả 1 class lớn thì... ). Do vậy mới dùng const ref.

  7. #7
    Ngày gia nhập
    11 2007
    Nơi ở
    Biết để làm gì?
    Bài viết
    827

    Nhân tiện cho mình hỏi nếu project của mình có 2 file header là A.h ,B.h và có 2 file cpp là A.cpp, B.cpp. Trong đó có 1 const sử dụng cho cả 4 file đó thì khai báo const ấy ở đâu là tốt nhất?
    Cánh Chym ứ mỏi

  8. #8
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Cậu bỏ vào thằng nào mà nó include cả 4 thằng, còn nếu không có quan hệ gì với nhau thì bỏ vào mỗi file 1 cái tên riêng biệt quan trọng là phải phản ánh nội dung cần của dữ liệu, const int global chỉ 4 byte không ảnh hưởng nhiều lắm đến performance đâu !

  9. #9
    Ngày gia nhập
    07 2007
    Nơi ở
    TP.HCM
    Bài viết
    199

    Trích dẫn Nguyên bản được gửi bởi dieucay555 Xem bài viết
    Nhân tiện cho mình hỏi nếu project của mình có 2 file header là A.h ,B.h và có 2 file cpp là A.cpp, B.cpp. Trong đó có 1 const sử dụng cho cả 4 file đó thì khai báo const ấy ở đâu là tốt nhất?
    Khai báo biến thì nên nhớ luôn khai báo trong file .cpp, tránh khai báo trong .h.
    Mình khuyên bạn không nên khai báo biến toàn cục, nên lập trình theo hướng tối tượng thì tốt hơn.

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

  1. Lập trình C++0x const: ý nghĩa của const trong khai báo function
    Gửi bởi quano1 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 13
    Bài viết cuối: 06-08-2013, 07:24 AM
  2. lỗi cannot convert `const char*' to `const WCHAR*' for argument khi dùng autoit với c++
    Gửi bởi morongtraitim88 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: 03-06-2011, 08:54 PM
  3. const A* const method(const A* const) const;//const thứ 2
    Gửi bởi david8xvn trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 18
    Bài viết cuối: 23-09-2010, 12:36 AM
  4. [ Solved ]Cho em hỏi về từ khóa const.
    Gửi bởi trunkthai trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 19-09-2008, 02:50 PM
  5. [VC] Cannot convert parameter 1 from 'const char [23]' to 'const wchar_t *'
    Gửi bởi lychailon trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 4
    Bài viết cuối: 09-12-2006, 11:22 AM

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