Trang 3 trên tổng số 3 Đầu tiênĐầu tiên 123
Từ 21 tới 26 trên tổng số 26 kết quả

Đề tài: lambda GNU và (lại) khai báo const trong hàm

  1. #21
    Ngày gia nhập
    04 2010
    Nơi ở
    Binh Thanh, Hồ Chí Minh, Vietnam, Vietnam
    Bài viết
    504

    Mặc định lambda GNU và (lại) khai báo const trong hàm

    Trích dẫn Nguyên bản được gửi bởi quano1 Xem bài viết
    có phải {} có ý nghĩa là mọi variable khai báo trong {} chỉ được sử dụng trong {} ?
    nếu đúng thì khi ra khỏi {} a.ptr_ sẽ trỏ vào đâu nhỉ? (mình compile g++ 4.7.3 không thấy bị làm sao cả)
    Khi ra khỏi scope thì biến i đã được giả phóng, lúc này A::ptr_ trở thành dangling pointer, truy xuất con trỏ lúc này có thể gây lỗi.
    P/s: Tks, tự dưng lại quên mất "dangling pointer".
    Kết bạn với tôi <3
    Skype: giautm
    Facebook:
    https://fb.com/giautm.duongntt
    Email:
    giau.tmg@gmail.com

  2. #22
    Ngày gia nhập
    09 2010
    Bài viết
    88

    Trích dẫn Nguyên bản được gửi bởi doicanhden Xem bài viết
    Khi ra khỏi scope thì biến i đã được giả phóng, lúc này A::ptr_ trở thành dangling pointer, truy xuất con trỏ lúc này có thể gây lỗi.
    P/s: Tks, tự dưng lại quên mất "dangling pointer".
    tại sao mình compile và chạy chẳng thấy error gì nhỉ :|

  3. #23
    Ngày gia nhập
    04 2010
    Nơi ở
    Binh Thanh, Hồ Chí Minh, Vietnam, Vietnam
    Bài viết
    504

    Trích dẫn Nguyên bản được gửi bởi quano1 Xem bài viết
    tại sao mình compile và chạy chẳng thấy error gì nhỉ :|
    :v Việc này giống như là bạn return một con trỏ trỏ đến một biến cục bộ trong hàm vậy, nhưng cái đó compiler còn bẫy được. Kiểu này thì không. Và có nguy cơ gây crash chương trình, lúc test do code ít, cấp phát ít, số lượng biến sử dụng ít, nên có thể là không thấy lỗi. Nhưng một khi đưa vào hệ thống đồ sộ rồi, thì chỉ có nước khóc ròng vì không thể tìm ra lỗi.
    Kết bạn với tôi <3
    Skype: giautm
    Facebook:
    https://fb.com/giautm.duongntt
    Email:
    giau.tmg@gmail.com

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

    @quano1:
    - Viết library thì syntactically correct là một chuyện, semantically correct là chuyện khác.
    - Viết library là rất khó, khó hơn viết app thường nhiều, vì chúng ta phải design rất cẩn thẩn tránh việc người dùng library hiểu nhầm ý định của API. Ví dụ, nếu mình dùng hàm setEx() của bạn, thì mình dữ liệu của mình sẽ ra sao khi hàm đó kết thúc? Gán pointer kiểu đó thật sự là không cần thiết, và redundant.
    - Muốn viết library cho C++ thì mình khuyên bạn nên tìm hiểu các library chuẩn trước, cơ bản là STL, advance thì có boost. Bạn phải hiểu và thành thạo mấy cái Design Pattern căn bản đã, sau đó vọc vào C++ STL, vì nó còn dùng nhiều các advance pattern khác nữa.
    - Và điều quan trọng nhất, là library phải "testable", (unit test, functional test....). Cách tốt nhất mà mình học được khi viết library component là Test Driven Development:
    1) Design sơ vài class (components)
    2) Viết test support nó
    3) Quay lại chỉnh sữa, rồi quay lại bước 2.

    Nếu bạn có thời gian thì tìm và đọc mấy cuốn sách sau:
    - The C++ Standard Library: A Tutorial and Reference
    - Modern C++ Design: Generic Programming and Design Patterns Applied
    - Design Patterns: Elements of Reusable Object-Oriented Software
    - Agile Software Development, Principles, Patterns, and Practices
    - C++ Coding Standards: 101 Rules, Guidelines, and Best Practices
    - API Design for C++
    - Clean Code: A Handbook of Agile Software Craftsmanship
    - Large-Scale C++ Software Design

    Last but not least, bạn có thể post cái graph library của bạn lên đây cho mọi người dùng qua thử thì bạn sẽ biết design của bạn nó good/bad thế nào.

  5. #25
    Ngày gia nhập
    09 2010
    Bài viết
    88

    @doicanhden: thanks. mình sẽ tìm hiểu thêm về curly bracets. cái vấn đề mà bạn nêu đúng là chết người

    @rr: argument là 1 pointer thật ra là có lý do
    mình đang cố gắng hoàn thành trong cuối tuần tới. còn thuật toán A* và 1 phần nhỏ về thread nữa. nhất định viết xong sẽ post lên để mọi người cùng góp ý và chỉnh sửa.
    3 năm rồi không sờ vào nó, hầu hết kiến thức căn bản đã đi toong...chủ ý ban đầu khi viết template là mình muốn ôn lại kiến thức C+.

    thanks all
    Đã được chỉnh sửa lần cuối bởi quano1 : 25-08-2013 lúc 10:11 AM.

  6. #26
    Ngày gia nhập
    04 2010
    Nơi ở
    Binh Thanh, Hồ Chí Minh, Vietnam, Vietnam
    Bài viết
    504

    Mặc định lambda GNU và (lại) khai báo const trong hàm

    Trích dẫn Nguyên bản được gửi bởi quano1 Xem bài viết
    @doicanhden: thanks. mình sẽ tìm hiểu thêm về curly bracets. cái vấn đề mà bạn nêu đúng là chết người
    Về scope thì không có gì mới mẻ để tìm hiểu cả. Đơn giản là biến/vùng nhớ được cấp phát tĩnh trong scope thì khi ra ngoài scope sẽ được giải phóng tự động. Điều cần làm bây giờ là bỏ ra ít thời gian để đọc lại toàn bộ mã nguồn xem có làm điều tương tự ở đâu không. Vì bạn bảo là lâu không đụng đến nên mình mới khuyên điều này. ^^!
    P/s: Nếu code "đồ sộ" quá rồi thì có thể mất cả ngày để kiểm tra đấy. Vì nhiều trường hợp không phải là nhìn phát ra ngay đâu. =.="
    Kết bạn với tôi <3
    Skype: giautm
    Facebook:
    https://fb.com/giautm.duongntt
    Email:
    giau.tmg@gmail.com

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

  1. Cách khai báo const đơn giản
    Gửi bởi trandatnh trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 05-09-2013, 10:51 AM
  2. 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
  3. CONST trong khai báo hàm của class sentence có nghĩa là gì?
    Gửi bởi oxfordthuongyeu trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 20-05-2011, 09:57 AM
  4. Kỹ thuật C Khai báo const trong lập trình C?
    Gửi bởi icanfeel trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 17-11-2010, 10:19 PM
  5. 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

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