과학

C++의 기능을 알아보자 - 연산자 오버로딩 Part 2.

논문 쓸거랑 프로젝트 땜에 쓸시간이 없었던것은 매우 미안하다고 생각함... ㅎ


전시간에는 연산자 오버로딩에 대해서 했었지... 아주 오래전에... 흠..

오늘은 cout을 사용해서 클래스나 구조체를 출력해보는것을 할거야.


cout은 C++처음 배우는 사람들에겐 익숙 하지...

무엇인가 출력할때..


스크린샷 2014-01-17 오전 11.30.02.png

마치 이렇게...


그런데

cout 네놈의 정체가 무엇이냐?!

스크린샷 2014-01-17 오전 11.35.10.png

스크린샷 2014-01-17 오전 11.35.54.png

스크린샷 2014-01-17 오전 11.36.46.png

하.. 진짜 정체가 뭐냐..


뭐 결국엔 cout은 ostream이라는 클래스로 선언된 변수고

또 ostream은 basic_ostream<char>로 타입이 재정의된거고

basic_ostream이 실제 cout의 정체..


basic_ostrearm을 보게되면 <<연산자가 엄창나게 오버로딩 되어 있는걸 볼수 있을거야..


여기서 이런 생각이 들지 않아??  "<<을 또 오버로딩하면 다른 것도 출력 할수 있지 않을까?"


오늘은 이 호기심을 풀어 보자...


스크린샷 2014-01-17 오전 11.54.34.png

스크린샷 2014-01-17 오전 11.55.21.png

NSOutput이라는 클래스를 만들어 봤어..

그냥 하는일 없이 문자열 길이 구하고 문자열 저장하는 클래스임..

만약 NSOutput에 있는 멤버 변수를 출력하려면

test.str test.len이렇게 해서 접근해서 해야겠지..


하지만 우리는 string클래스처럼 그냥 cout << test;로만으로도 출력 하고 싶다!


스크린샷 2014-01-17 오후 12.33.44.png

스크린샷 2014-01-17 오후 12.34.04.png


짜잔! string 클래스처럼 우리가 만든 test만 넣어도 출력이 된다!

그런데 앞에 friend라는 키워드를 사용할까?


<<은 NSOutput에 대해서 연산하려는게 아니라 ostream에 대해서 연산 하려는거지..

근데 우리가 이걸 수정 할수 없잖아.. 그래서 전역 함수로 만들기 위해 사용 한거야..

cout으로 출력하기 윈한 오버로딩은 실제로 많이 사용 하진 않고 그냥 "아 이런게 있구나"를 알리기 위해서 쓴거야...


STL부분은 시간도 없고 더 어려워 질것 같아서 스킵! ㅠ


다음에는 컴퓨터 공학개론에 나오는 내용을 다루걸야!

5개의 댓글

2014.01.17
스샷에 찍힌거 뭐쓰는거여?
서브라임텍스트?
0
2014.01.17
@단 기어
xcode
0
2014.01.17
ㅊㅊ
0
2014.01.17
코드올릴떄
https://gist.github.com 아니면
http://hooriza.com/utils/highlighter/index.php?
에 올리고 여기에 html 복사해서 붙여넣으면 귀찮게 스샷 안찍어도됨 ㅋ
네이버 지식인처럼 자동으로 되면 좋겠지만 ㄷㄷ
0
2014.07.25
잉텔님 글에 상당히 관심이 있습니다. 연락넣어주세요.
[email protected]
0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜
12442 [기타 지식] 한국에서는 유행할 일이 없는 맥시코 칵테일, 미첼라다 편 - ... 3 지나가는김개붕 4 10 시간 전
12441 [호러 괴담] [살인자 이야기] "범인을 꼭 알아내겠습니다."라는... 2 그그그그 7 1 일 전
12440 [역사] 장진호 전투 트리비아. "모든것이 얼어붙었다" 2 잔다깨우지마라 5 1 일 전
12439 [역사] 한국의 성장과 서울의 성장 2 쿠릭 4 1 일 전
12438 [호러 괴담] [살인자 이야기] 컨저링 3의 실화 이야기. 악마가 시켰다 그그그그 7 3 일 전
12437 [기타 지식] 당신이 칵테일을 좋아하게 됐다면 마주치는 칵테일, 사이드카... 5 지나가는김개붕 5 4 일 전
12436 [역사] 지도로 보는 올초 겨울까지의 우크라이나 전쟁 12 FishAndMaps 20 5 일 전
12435 [기타 지식] 클래식은 아니지만, 여전히 사랑 받는 칵테일, 갓 파더편 - ... 4 지나가는김개붕 5 5 일 전
12434 [역사] 중화인민공화국 의외의 금기-6.25전쟁(5) 2 綠象 4 6 일 전
12433 [역사] 중화인민공화국 의외의 금기-6.25전쟁(4) 綠象 3 7 일 전
12432 [역사] 중화인민공화국 의외의 금기-6.25전쟁(3) 1 綠象 3 7 일 전
12431 [호러 괴담] [미스테리] 한 은행 직원이 귀가 중 사라졌다? 2 그그그그 7 7 일 전
12430 [호러 괴담] [살인자 이야기] 뭔가 좀 이상한 지명수배자. 이와테 살인사건 2 그그그그 4 9 일 전
12429 [기타 지식] 페미니즘은 여성에게 도움이 되었는가 02 16 키룰루 28 9 일 전
12428 [역사] 중화인민공화국 의외의 금기-6.25전쟁(2) 4 綠象 10 11 일 전
12427 [역사] 중화인민공화국 의외의 금기-6.25전쟁(1) 4 綠象 13 11 일 전
12426 [기타 지식] 페미니즘은 여성에게 도움이 되었는가 01 25 키룰루 26 11 일 전
12425 [역사] 네안데르탈인은 어떻게 생겼을까? 2부 3 식별불해 11 11 일 전
12424 [호러 괴담] [미스테리] 방에서 실종됐는데 9일 뒤 방에서 사망한 채 발견... 6 그그그그 8 12 일 전
12423 [역사] 네안데르탈인은 어떻게 생겼을까? 11 식별불해 28 12 일 전