Nạp chồng toán tử Input/Output trong C++

C++ là có thể input và output các kiểu dữ liệu có sẵn bởi sử dụng toán tử trích luồng >> và toán tử chèn luồng <<. Các toán tử trích luồng và chèn luồng cũng có thể được nạp chồng để thực hiện input và output cho các kiểu tự định nghĩa (user-defined).

Ở đây, nó là quan trọng để tạo một hàm nạp chồng toán tử một friend của lớp, bởi vì nó sẽ được gọi mà không tạo một đối tượng.

Ví dụ sau giải thích cách nạp chồng toán tử trích luồng >> và toán tử chèn luồng << trong C++:

#include <iostream>
using namespace std;


class KhoangCach
{
   private:
      int met;             
      int centimet;           
   public:
      // phan khai bao cac constructor can thiet
      KhoangCach(){
         met = 0;
         centimet = 0;
      }
      KhoangCach(int m, int c){
         met = m;
         centimet = c;
      }
      friend ostream &operator<<( ostream &output, 
                                       const KhoangCach &K )
      { 
         output << "\nDo dai bang m la: " << K.met << "\nVa do dai bang cm la: " << K.centimet;
         return output;            
      }


      friend istream &operator>>( istream  &input, KhoangCach &K )
      { 
         input >> K.met >> K.centimet;
         return input;            
      }
};
int main()
{
   KhoangCach K1(23, 14), K2(14, 35), K3;


   cout << "Nhap gia tri cua doi tuong K3: " << endl;
   cin >> K3;
   cout << "Khoang cach dau tien: " << K1 << endl;
   cout << "\n==========================\n" << endl;
   cout << "Khoang cach thu hai: " << K2 << endl;
   cout << "\n==========================\n" << endl;
   cout << "Khoang cach thu ba: " << K3 << endl;


   return 0;
}

Biên dịch và chạy chương trình C++ trên sẽ cho kết quả sau:

Bình luận