Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 스트림 삽입(<<) 및 추출(>>) 연산자 오버로딩

<시간/>

C++는 스트림 추출 연산자>> 및 스트림 삽입 연산자 <<를 사용하여 내장 데이터 유형을 입력 및 출력할 수 있습니다. 스트림 삽입 및 스트림 추출 연산자는 개체와 같은 사용자 정의 유형에 대한 입력 및 출력을 수행하기 위해 오버로드될 수도 있습니다.

여기서 연산자 오버로딩 함수는 객체를 생성하지 않고 호출되기 때문에 클래스의 친구로 만드는 것이 중요합니다.

다음 예제에서는 추출 연산자>>와 삽입 연산자 <<.

를 어떻게 설명하는지 설명합니다.

예시 코드

#include <iostream>
using namespace std;
class Distance {
   private:
   int feet; // 0 to infinite
   int inches; // 0 to 12
   public:
   // required constructors
   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 << "Enter the value of object : " << endl;
   cin >> D3;
   cout << "First Distance : " << D1 << endl;
   cout << "Second Distance :" << D2 << endl;
   cout << "Third Distance :" << D3 << endl;
   return 0;
}

출력

$./a.out
Enter the value of object :
70
10
First Distance : F : 11 I : 10
Second Distance :F : 5 I : 11
Third Distance :F : 70 I : 10