Mã C thường là mã C ++ hợp lệ.
Các vấn đề chính với C ++ là sử dụng nó không chính xác ( Linus Torvalds ghét nó vì lý do này , anh ta cũng có một số vấn đề khác với tính di động của thư viện và vì vậy, anh ta đang làm việc ở cấp hệ điều hành và phải chạy mọi thứ một cách ngẫu nhiên chip ngoài đó).
Ví dụ, hầu như không có lợi thế nào khi sử dụng mảng cstyle [] so với c ++ std :: vector <> (hoặc container tương tự).
Các vectơ là loại an toàn và có thể được kiểm tra giới hạn (bạn có thể truy cập các phần tử bằng cách sử dụng get () hoặc [], ngay cả khi bạn không sử dụng phương thức kiểm tra mảng, bạn vẫn có thể truy vấn kích thước thay vì đặt xung quanh nó bằng con trỏ).
Nhưng vectơ có thể thể chậm hơn nếu, chẳng hạn, bạn không khai báo kích thước mặc định trong hàm tạo. Ngoài ra, việc thêm mọi thứ vào một vectơ có thể gây ra sự chậm lại nếu sau đó nó cần thay đổi kích thước. C ++ 11 cũng bổ sung nhiều lợi thế như khởi tạo thống nhất (bây giờ bạn có thể khai báo và khởi tạo vectơ bằng cùng một cú pháp) và có các hàm tạo di chuyển có thể cho phép bạn tránh sao chép. Bạn thậm chí có thể tạo các trình khởi tạo tùy chỉnh của riêng bạn (nếu bạn muốn làm một cái gì đó ngoài việc sử dụng malloc vì một số lý do).
Hoặc tất nhiên nếu bạn cần thay đổi kích thước mọi thứ, thì vectơ vẫn dễ thực hiện hơn, bạn không phải loay hoay với malloc, sao chép thủ công mọi thứ, v.v.
C ++ cung cấp cho bạn mã hướng đối tượng. Khi được biên dịch, nó sẽ hoạt động hiệu quả vì nó thực sự chỉ là một sự trừu tượng đối với con người làm việc với mã. Mặc dù những thứ như các nhà xây dựng có thể làm chậm việc tạo đối tượng. Nhưng bạn sẽ cần hàm tạo để đặt các giá trị mặc định hoặc nếu không bạn có thể khởi tạo các đối tượng mà không cần sử dụng hàm tạo (bằng cách bỏ đi () 's).
Nhưng định hướng đối tượng làm cho trò chơi lập trình dễ dàng hơn nhiều . Trò chơi thường đối phó với các đối tượng.