Thư viện iostream chứa nhiều lớp để xử lý một sự đa dạng rộng của các thao tác nhập/xuất. Lớp
istream hỗ trợ các thao tác dòng nhập. Lớp ostream hỗ trợ các thao tác dòng xuất. Lớp iostream hỗ trợ cả
hai thao tác dòng nhập và dòng xuất. Lớp istream và lớp ostream đều kế thừa đơn từ lớp cơ sở ios. Lớp
iostream được kế thừa thông qua đa kế thừa từ hai lớp istream và ostream.
Hình 8.1: Một phần của phân cấp lớp dịng nhập/xuất
Đa năng hóa tốn tử cung cấp một ký hiệu thích hợp cho việc thực hiện nhập/xuất. Tốn tử dịch chuyển
trái (<<) được đa năng hóa để định rõ dòng xuất và được tham chiếu như là toán tử chèn dịng. Tốn tử dịch chuyển phải (>>) được đa năng hóa để định rõ dịng nhập và được tham chiếu như là tốn tử trích dịng. Các toán tử này được sử dụng với các đối tượng dịng chuẩn cin, cout, cerr và clog, và bình thường với các đối tượng dòng do người dùng định nghĩa.
cin là một đối tượng của lớp istream và được nói là "bị ràng buộc tới" (hoặc kết nối tới) thiết bị nhập
chuẩn, thơng thường là bàn phím. Tốn tử trích dịng được sử dụng ở lệnh sau tạo ra một giá trị cho biến nguyên X được nhập từ cin tới bộ nhớ:
int X; cin >> X;
cout là một đối tượng của lớp ostream và được nói là "bị ràng buộc tới" thiết bị xuất chuẩn, thơng
thường là màn hình. Tốn tử chèn dịng được sử dụng ở lệnh sau tạo ra một giá trị cho biến nguyên X được xuất từ bộ nhớ tới thiết bị chuẩn:
cout << X;
cerr là một đối tượng của lớp ostream và được nói là "bị ràng buộc tới" thiết bị lỗi chuẩn. Việc xuất
đối tượng cerr là khơng vùng đệm. Điều này có nghĩa là mỗi lần chèn tới cerr tạo ra kết xuất của nó xuất hiện ngay tức thì; Điều này thích hợp cho việc thơng báo nhanh chóng người dùng khi có sự cố.
clog là một đối tượng của lớp ostream và được nói là "bị ràng buộc tới" thiết bị lỗi chuẩn. Việc xuất
đối tượng cerr là có vùng đệm. Điều này có nghĩa là mỗi lần chèn tới cerr tạo ra kết xuất của nó được giữ trong vùng đệm cho đến khi vùng đệm đầy hoặc vùng đệm được flush.
Việc xử lý file của C++ sử dụng các lớp ifstream để thực hiện các thao tác nhập file, ofstream cho các thao tác xuất file, và fstream cho các thao tác nhập/xuất file. Lớp ifstream kế thừa từ istream, ofstream lớp kế thừa từ ostream, và lớp fstream kế thừa từ iostream.
Giáo trình mơn Lập trình hướng đối tượng Trang 145
Hình 8.2: Một phần của phân cấp lớp dòng nhập/xuất với việc xử lý file.