Tôi là một lập trình viên trong C và C ++, mặc dù tôi không dính vào một trong hai ngôn ngữ và viết hỗn hợp cả hai. Đôi khi có mã trong các lớp, có thể với quá tải toán tử, hoặc các mẫu và STL tuyệt vời rõ ràng là một cách tốt hơn. Đôi khi việc sử dụng một con trỏ hàm C đơn giản dễ đọc và rõ ràng hơn nhiều. Vì vậy, tôi tìm thấy vẻ đẹp và tính thực tế trong cả hai ngôn ngữ. Tôi không muốn tham gia vào cuộc thảo luận về "Nếu bạn trộn chúng và biên dịch với trình biên dịch C ++, thì đó không phải là một bản phối nữa, tất cả đều là C ++" Tôi nghĩ tất cả chúng ta đều hiểu ý tôi khi trộn chúng. Ngoài ra, tôi không muốn nói về C vs C ++, câu hỏi này là tất cả về C ++ 11.
C ++ 11 giới thiệu những gì tôi nghĩ là những thay đổi đáng kể đối với cách hoạt động của C ++, nhưng nó đã đưa ra nhiều trường hợp đặc biệt, ngoại lệ và bất thường thay đổi cách các tính năng khác nhau hoạt động trong các trường hợp khác nhau, đặt các hạn chế đối với nhiều kế thừa, định danh đóng vai trò là từ khóa, tiện ích mở rộng của chuỗi ký tự, bắt hàm biến lambda, v.v.
Tôi biết rằng tại một thời điểm nào đó trong tương lai, khi bạn nói C ++, mọi người sẽ giả sử C ++ 11. Giống như khi bạn nói C ngày nay, rất có thể bạn có nghĩa là C99. Điều đó khiến tôi cân nhắc việc học C ++ 11. Rốt cuộc, nếu tôi muốn tiếp tục viết mã bằng C ++, đôi khi tôi có thể cần phải bắt đầu sử dụng các tính năng đó đơn giản chỉ vì các đồng nghiệp của tôi có.
Lấy C làm ví dụ. Sau nhiều năm, vẫn còn nhiều người học và viết mã bằng C. Tại sao? Bởi vì ngôn ngữ là tốt. Điều tốt có nghĩa là, nó tuân theo nhiều quy tắc để tạo ra một ngôn ngữ lập trình tốt. Vì vậy, ngoài việc mạnh mẽ (dễ hay khó, hầu như tất cả các ngôn ngữ lập trình đều có), C là thường xuyên và có một vài ngoại lệ, nếu có. C ++ 11 tuy nhiên, tôi không nghĩ vậy. Tôi không chắc chắn rằng những thay đổi được giới thiệu trong C ++ 11 đang giúp ngôn ngữ trở nên tốt hơn.
Vì vậy, câu hỏi là: Tại sao tôi học C ++ 11?