Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Nạp chồng toán tử chèn luồng (<<) và trích xuất luồng (>>) trong C++


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