Struct trong C++ gần giống class trong C++. Trong C struct, tất cả thành viên đều public, nhưng trong C++ mặc định là private. Một số khác biệt khác:
| Struct C | Struct C++ |
|---|---|
| Struct C không thể có hàm thành viên bên trong. | Struct C++ có thể chứa hàm thành viên cùng biến thành viên. |
| Không thể khởi tạo dữ liệu struct trực tiếp trong C. | Có thể khởi tạo dữ liệu struct trực tiếp trong C++. |
| Trong C, phải viết từ khóa 'struct' để khai báo biến kiểu struct. | Trong C++, không cần từ khóa 'struct' khi khai báo biến. |
| Struct C không thể có thành viên static. | Struct C++ có thể có thành viên static. |
| sizeof struct rỗng trong C cho kết quả 0. | sizeof struct rỗng trong C++ cho kết quả 1. |
| Tính ẩn dữ liệu không có trong struct C. | Tính ẩn dữ liệu có trong struct C++. |
| Struct C không có access modifier. | Struct C++ có access specifier (public, private, protected). |