Tổng quan tốt nhất về mô hình C ++ hiện đại? [đóng cửa]


16

Tôi đã từng viết C ++ rộng rãi từ 8 đến 10 năm trước. Tôi đã chuyển sang C # vì lý do nghề nghiệp. Tuy nhiên, thỉnh thoảng tôi thấy những câu như

"Nếu bạn vẫn theo dõi thủ công các tham chiếu con trỏ, bạn đang làm sai"

hoặc là

"C ++ hoàn toàn an toàn miễn là bạn đang sử dụng các khái niệm hiện đại như RAII và không phân bổ bộ nhớ theo cách thủ công như nhà phát triển C đang phục hồi."

Cả hai đều là thủ tục tiêu chuẩn một thập kỷ trước. Tôi đã thấy rằng C ++ đã được cải thiện đáng kể trong thời gian gần đây; C ++ 0x nói riêng có vẻ như nó có một số khả năng mới. Tài nguyên tốt nhất để lập trình viên "C / cũ C ++" bắt kịp các mô hình và thực tiễn C ++ "hiện đại" là gì?


3
Họ là thủ tục tiêu chuẩn một thập kỷ trước. Thật không may, vẫn còn một phần rất đáng kể các nhà phát triển C ++ sử dụng quy trình chuẩn từ ba thập kỷ trước.
DeadMG

7
Tôi không biết về một tài nguyên duy nhất, nhưng C ++ hiện đại về cơ bản bắt nguồn từ: (1) sử dụng rộng rãi STL bất cứ khi nào có thể thay vì thuật toán cuộn bằng tay, (2) sử dụng con trỏ thông minh và bộ chứa STL qua phân bổ / phân bổ thủ công , (3) một kiểu lập trình esque chức năng sử dụng functor / lambdas cùng với các hàm bậc cao hơn và (4) ưu tiên cho đa hình tĩnh dựa trên mẫu so với các hàm ảo thời gian chạy bất cứ khi nào khả thi
Charles Salvia

Câu trả lời:


5

Nó có thể liên quan nhiều đến các tài liệu giảng dạy hơn hầu hết các thứ khác, nhưng 8-10 năm trước, dường như cách sử dụng ngôn ngữ này khác rất nhiều so với ngày nay. Trọng tâm ngày nay tập trung nhiều hơn vào việc tận dụng các mẫu, loại an toàn và lập trình chung trong đó trước đây có nhiều nỗi sợ hơn và mọi người tập trung hầu hết vào C với các khía cạnh đối tượng.

Tài liệu giảng dạy cũng đang thay đổi. Mặc dù trước khi cuốn sách bắt đầu C ++ tiêu chuẩn sẽ đưa bạn qua printf, scanf, v.v ... bạn thậm chí không thể nhìn thấy những điều này trong sách với cách tiếp cận hiện đại.

Một số cuốn sách tốt là bất kỳ cuốn sách đỏ. Đặc biệt C ++, Siêu mẫu C ++, Siêu mẫu C ++, Thiết kế C ++ hiện đại, C ++ tăng tốc ...

Tôi nghĩ rằng nhìn vào nơi tôi đang làm việc có thể là một ví dụ tốt. Tôi đến đây bằng C ++ theo cách hiện đại và dường như hầu hết các nhà phát triển thậm chí không biết tôi đang làm gì hoặc tại sao. Làm cho các đối tượng có toán tử () trong đó chẳng hạn ... Phải bình luận về mọi sự xuất hiện của ràng buộc () và cuối cùng được yêu cầu loại bỏ tất cả mã đó. Không biết những gì người khởi tạo làm ... Nó thực sự rất quái đản và khó khăn với tôi.


5

Để có được sự giám sát nhanh chóng các tính năng hiện đại được trình bày khá tốt, bạn sẽ không xem sai phần trình bày gần đây của Herb Sutter , "Viết mã C ++ hiện đại: cách C ++ phát triển qua nhiều năm" của các tính năng C ++ tại // build /.

Anh ấy nói về lý do tại sao nó là ngôn ngữ tốt hơn C # (tất nhiên - Microsoft thay đổi quần thường xuyên và ngày nay họ đang mặc thời trang C ++ để họ sẽ cường điệu hóa điều này, chỉ cần họ thổi phồng C # như câu trả lời cho nạn đói thế giới trong một thập kỷ trước đây) nhưng khi làm như vậy, anh ta mô tả tất cả các bit tốt (như quản lý bộ nhớ 'tự động' và các lớp STL) và sau đó tiếp tục nói về các bit mới từ chuẩn C ++ 0x.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.