Tôi đã viết tấn các hàm operator<<(std::ostream &, const T &)
- chúng cực kỳ hữu ích.Có ai thực sự sử dụng toán tử trích xuất luồng không?
Tôi chưa bao giờ viết hàm operator>>(std::istream &, T &)
bằng mã thực hoặc thậm chí sử dụng toán tử khai thác cho các kiểu được tích hợp sẵn (OK, có thể là std::string
). Những điều này chỉ thích hợp cho các chương trình và sách giáo khoa ví dụ ngắn không? Có phải operator>>
là một tính năng không thành công của C++ không?
Câu hỏi đã được hỏi về safely overloading stream operators. Những gì tôi tự hỏi là nếu có ai làm điều này trong thực tế.
Ngay cả đối với một cái gì đó đơn giản như reading input from a file in C++ Tôi không thể đề xuất sử dụng operator>>
. Quá khó để viết mã mạnh mẽ trong việc phát hiện và xử lý lỗi trong đầu vào (hoặc tôi không biết làm thế nào).
Nếu bạn không đồng ý, hãy hiển thị ví dụ về cách sử dụng operator>>
- có thể bằng cách trả lời câu hỏi cuối cùng mà tôi liên kết đến.
Kết thúc: Cảm ơn bạn đã trả lời tất cả mọi người, rất nhiều ý kiến hay. Câu trả lời của Manuel khiến tôi xem xét lại sự miễn cưỡng của mình khi sử dụng
op>>
vì vậy tôi đã chấp nhận điều đó.
Bạn cần xác định 'op >>' nếu để hỗ trợ 'lexical_cast'. (http://www.boost.org/doc/libs/1_42_0/libs/conversion/lexical_cast.htm). – kennytm