Tôi tò mò về cách fstream
class
có thể trả lại giá trị true
hoặc false
bằng cách chỉ cần đặt tên của đối tượng bên trong câu lệnh có điều kiện. Ví dụ:Làm thế nào nếu ('đối tượng fstream') trả về giá trị true hoặc false tùy thuộc vào việc tệp đã được mở hay chưa?
std::fstream fileStream;
fileStream.open("somefile.ext");
if (!fileStream) // How does this work?
std::cout << "File could not be opened...\n";
Tôi hỏi điều này vì tôi muốn lớp của riêng tôi trả về giá trị nếu tôi sử dụng nó theo cách tương tự.
Đây được gọi là [thành ngữ an toàn-bool] (http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Safe_bool), và không nên được sử dụng trong mã C++ 11 mới có lợi cho 'toán tử trừu tượng bool()'. – ildjarn
Đúng vậy. Tôi hoàn toàn quên mất điều này. Tôi không thể đánh dấu nhận xét của bạn là câu trả lời nhưng cảm ơn! –