C++ có thể nhập và xuất các kiểu dữ liệu tích hợp bằng toán tử trích xuất luồng >> và toán tử chèn luồng <<. Các toán tử chèn luồng và trích xuất luồng cũng có thể được nạp chồng để thực hiện nhập/xuất cho các kiểu do người dùng định nghĩa như một đối tượng.
Ở đây, quan trọng là làm cho hàm nạp chồng toán tử trở thành bạn (friend) của lớp vì nó sẽ được gọi mà không cần tạo đối tượng.
Ví dụ sau giải thích cách nạp chồng toán tử trích xuất >> và chèn <<.
Mã ví dụ
#include <iostream>
using namespace std;
class Distance {
private:
int feet; // 0 đến vô hạn
int inches; // 0 đến 12
public:
// Các constructor cần thiết
Distance() {
feet = 0;
inches = 0;
}
Distance(int f, int i) {
feet = f;
inches = i;
}
friend ostream &operator<<(ostream &output, const Distance &D) {
output << "F: " << D.feet << " I: " << D.inches;
return output;
}
friend istream &operator>>(istream &input, Distance &D) {
input >> D.feet >> D.inches;
return input;
}
};
int main() {
Distance D1(11, 10), D2(5, 11), D3;
cout << "Nhập giá trị của đối tượng: " << endl;
cin >> D3;
cout << "Khoảng cách thứ nhất: " << D1 << endl;
cout << "Khoảng cách thứ hai: " << D2 << endl;
cout << "Khoảng cách thứ ba: " << D3 << endl;
return 0;
}
Kết quả đầu ra
Nhập giá trị của đối tượng: 70 10 Khoảng cách thứ nhất: F: 11 I: 10 Khoảng cách thứ hai: F: 5 I: 11 Khoảng cách thứ ba: F: 70 I: 10