Trong khi đọc ngay hôm nay, tôi đã nhận được nhận xét này trong một số post về cách các địa điểm hàng đầu trong thử thách Google Ai được C++ thực hiện. Tài reventlov
tuyên bốCâu hỏi cơ bản về RAII, STL pop và PIMPL
Vấn đề lớn nhất tôi có với C++ là nó waaay quá dễ dàng để nghĩ rằng bạn là một "C++ lập trình viên" mà không thực sự hiểu tất cả những điều bạn cần phải hiểu để sử dụng C++ chấp nhận được tốt.
Bạn phải biết RAII và biết sử dụng không gian tên và hiểu xử lý ngoại lệ phù hợp (ví dụ, bạn có thể giải thích lý do tại sao các phương thức pop() trong STL không trả lại giá trị mà chúng loại bỏ) . Bạn phải biết được ba thế hệ chức năng nào trong thư viện chuẩn là thư viện đúng. Bạn nên làm quen với các khái niệm như PIMPL. Bạn cần hiểu cách thiết kế thư viện chuẩn (đặc biệt là STL) hoạt động như thế nào. Bạn cần phải hiểu cách macro tương tác với các không gian tên và tại sao bạn thường không nên sử dụng các macro trong C++ và những gì bạn nên sử dụng thay vào đó (thường là các mẫu hoặc các dòng nội tuyến, hiếm khi là một lớp). Bạn cần biết về tăng cường.
Tôi nghĩ rằng tôi là một trong những người lập trình C++ không biết gì mà anh ta đề cập đến. Để giữ ngắn gọn, câu hỏi của tôi là
- Bạn có thể đưa ra ví dụ về lỗi giám sát RAII điển hình, ví dụ: nơi thực hành tốt nhất quyết định việc sử dụng RAII nhưng các lập trình viên đã thực hiện bằng cách nào khác?
- Tại sao không phải phương thức pop() trong STL trả về giá trị mà chúng loại bỏ?
- Tôi đã đọc mục nhập của Wikipedia cho PIMPL, không hiểu bất kỳ mục nào trong số đó. Bạn có thể đưa ra một ví dụ về cách sử dụng điển hình của thành ngữ PIMPL.
Tôi không hiểu câu hỏi 1, bạn có thể diễn đạt lại câu hỏi này không? –
Có lẽ bạn sẽ hạnh phúc hơn khi ở trên reddit? Quy tắc ở đây là một câu hỏi tại một thời điểm. –
@Neil, lol điều này sẽ trở thành 10+ nhận xét tiếp theo của bạn xD –