Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- C
- react
- Android
- RaspberryPi
- gnuplot
- GitHub
- 루비
- Spring
- ruby
- Python
- JS
- OTLanguage
- OAuth
- Java
- Godot
- maven
- gradle
- error
- Shell
- ruby2d
- jetbrains
- Vane
- rubymine
- kotlin
- CPP
- plugin
- boj
- 개발노트
- IntelliJ
- Baekjoon
Archives
- Today
- Total
PersesTitan(페르) 기술블로그
[C++] 입출력 연산자 재정의 (오버라이딩)하기 본문
클래스 정의
출력은 ostream의 <<를 입력은 istream의 >>의 연산자를 재정의 해주었습니다.
입출력 함수를 재정의할 때는 앞에 friend를 붙여주는데 전역 함수로 선언되여 쉬운 입출력 접근을 가능하게 만들어줍니다.
class Time {
int hour;
int second;
public:
Time() {}
Time(int hour, int second): hour(hour), second(second) {}
friend ostream &operator<<(ostream &out, const Time &time);
friend istream &operator>>(istream &in, Time &time);
};
입출력 연산자 정의
출력은 데이터가 변경되지 않기 때문에 Time클래스에 const가 사용되어도 무방하지만 입력은 값의 변경이 일어나야하기 때문에 const사용시 문제가 발생할 수 있습니다.
ostream &operator<<(ostream &out, const Time &time) {
out << time.hour << "시 " << time.second << "분";
return out;
}
istream &operator>>(istream &in, Time &time) {
cout << "시 분 입력: ";
in >> time.hour >> time.second;
return in;
}
전체 코드
#include <iostream>
using namespace std;
class Time {
int hour;
int second;
public:
Time() {}
Time(int hour, int second): hour(hour), second(second) {}
friend ostream &operator<<(ostream &out, const Time &time);
friend istream &operator>>(istream &in, Time &time);
};
ostream &operator<<(ostream &out, const Time &time) {
out << time.hour << "시 " << time.second << "분";
return out;
}
istream &operator>>(istream &in, Time &time) {
cout << "시 분 입력: ";
in >> time.hour >> time.second;
return in;
}
int main() {
Time time;
cin >> time; // 입력
cout << time; // 출력
return 0;
}
입출력 예시
# 입력
10 32
# 출력
시 분 입력: 10 32
10시 32분
'Language > C' 카테고리의 다른 글
[C] 리스트 add, set, delete간단하게 구현해보기 (0) | 2023.12.18 |
---|---|
[C] 원형큐 구조 정리 (0) | 2023.12.17 |
[C] 선형큐 구조 정리 (0) | 2023.12.17 |
[C] 거듭제곱 함수 만들기 (0) | 2023.10.23 |
[C] 팩토리얼 함수 만들기 (2) | 2023.10.23 |