01/10/2018, 01:05

Sự khác nhau giữa reinterpret_cast<char*> và (char*)

mai e thi cuối kì C++
thấy trong sách hay dùng reinterpret_cast<char*> để ép kiểu đối tượng rồi ghi vào file nhị phân
nhưng e dùng (char*) chưa thấy trường hợp nào sai cả .không biết 2 cái này có gì khác nhau không các bác
à mà dùng xâu kiểu string khi nhập xuất file nhị phân bị lỗi đúng không các bác .e chuyển sang char lại bình thường

Nguyễn Đức Anh viết 03:15 ngày 01/10/2018

Mình thấy không nên ghi cả đối tượng vào file nhị phân theo kiểu đó trong C++. Trường hợp đối tượng có con trỏ hoặc những kiểu liên quan đến con trỏ như string,… đọc ra chắc chắn lỗi. Trừ khi bạn chỉ dùng các kiểu dữ liệu cơ bản ko liên quan đến con trỏ như int, char , char[],… Còn về 2 cái cast kia thì 1 cái là style C++, 1 cái là C. C++ có nhiều kiểu cast phân biệt nhau, trong 2 kiểu trên bạn dùng kiểu nào cũng được vì trường hợp này giống nhau

Nguyễn Đức Anh viết 03:11 ngày 01/10/2018

Bạn có thể đọc về serialization để hiểu rõ hơn tại sao lỗi, cái này mình hay dùng thư viện bên thứ 3 để ghi

Bài liên quan
0