2009-05-14 29 views
6

OK, tôi đang xem xét việc phát triển C++ trong những tháng tới (không có ngày đã đặt). Tôi mơ hồ quen thuộc với ngôn ngữ (chủ yếu là C), cũng như một số khái niệm cơ bản về OO, MI, các mẫu, ngoại lệ, các mẫu, được sử dụng STL. Và bây giờ tôi đang ở thời điểm mà tôi muốn nắm vững ngôn ngữ trong chiều sâu. Và câu hỏi tự nhiên là liệu tôi có nên
bắt đầu với hiện tại C++ 03 hoặc C++ 0x tiêu chuẩn.Tôi có nên học C++ dựa trên tiêu chuẩn mới hay cũ (đặc tả)?

Vui lòng đề xuất cách tốt nhất để chuyển từ người dùng sang guru, vì tiêu chuẩn mới gần như ở đây và có khả năng sẽ tồn tại trong nhiều năm tới.

Cảm ơn

+3

Bạn hy vọng sẽ đạt được gì khi học C++? Nếu bạn quan tâm đến thiết kế ngôn ngữ, C++ 0X sẽ thú vị hơn. Tuy nhiên, nếu bạn muốn phát triển chuyên môn, bạn chắc chắn nên tuân thủ tiêu chuẩn C++ 03. – joshdick

Trả lời

12

Đề xuất của tôi là bắt đầu ở giữa. Bắt đầu với C++ 03, nhưng kiểm tra các tính năng và thư viện C++ 0x mà một số trình biên dịch đã cung cấp thường xuyên. Tính đến nay, C++ 03 là tiêu chuẩn (không chỉ chính thức, nhưng hầu hết mã bạn sẽ tìm thấy sẽ được nghiêm chỉnh C++ 03).

Bây giờ, nếu bạn có ý định học tập tốt nhất: hãy bắt đầu nhanh chóng với các khái niệm cơ bản về STL và chuyển vào thư viện Boost ngay lập tức. Tìm hiểu các mẫu toàn bộ cách, đọc trên lập trình meta. Sử dụng C++ 03 hiện đại sẽ giúp bạn đi đúng hướng với C++ 0x.

6

Tìm hiểu tiêu chuẩn cũ hơn C++ 03. C++ 0X vẫn còn một vài năm nữa (ít nhất) kể cả khi được phê chuẩn như một tiêu chuẩn. Sau khi được chuẩn hóa, sẽ mất thời gian trước khi bất kỳ triển khai nào phù hợp với hỗ trợ tất cả các tính năng của nó và sẽ mất thời gian dài hơn trước khi triển khai C++ 0X trở nên phổ biến và không được sử dụng đáng kể.

2

Theo tôi, tìm hiểu C++ 03 thực tế hơn. Nếu bạn không ngại học các tính năng mới nhưng có thể sử dụng một phần trong vài năm, C++ 0x là tốt hơn. Tin tốt là g ++ phiên bản mới và vC++ 2010 đã triển khai các phần của tính năng C++ 0x mới.

1

Học các tính năng C++ 0x mới là một cách tuyệt vời để tìm hiểu thêm về C++ 03 vì bạn thấy C++ 03 hoạt động như thế nào, các vấn đề với nó và C++ 0x đề xuất làm gì để giải quyết những vấn đề đó.

Gần đây, tôi đã có kinh nghiệm học hỏi về các tham chiếu rvalue mới và di chuyển ngữ nghĩa. Trong C++ 03 có rất nhiều việc tạo và sao chép tạm thời không cần thiết trong các biểu thức, tìm hiểu lý do tại sao C++ 03 có vấn đề này và cách C++ 0x giải quyết vấn đề này khá sáng sủa và thông báo cho phát triển C++ hiện tại của tôi.

1

Sẽ mất một vài năm trước khi trình biên dịch C++ 0x phổ biến. Vì vậy, tại thời điểm này, bạn không có nhiều sự lựa chọn. Tìm hiểu C++ 03, và sau đó bạn có thể tìm hiểu những thứ mới một cách riêng biệt, khi thời gian đến. Sự khác biệt cơ bản không phải là tuyệt vời. 0x chủ yếu là vấn đề của các tính năng mới được bắt đầu và các tính năng hiện có đang được tổng quát và sắp xếp hợp lý. Kiến thức về C++ 03 vẫn sẽ được áp dụng.

Các vấn đề liên quan