본문 바로가기

Friend2

[ C++ ] 연산자 오버로딩 C++은 함수 오버 로딩뿐만 아니라 연산자도 오버 로딩이 가능하다. 연산자 오버로딩이 무엇일까? 말 그래도 연산자를 오버 로딩하는 것이다. 객체가 기본 자료형 변수처럼 덧셈, 뺄셈, 혹은 곱셈과 같은 연산들을 가능하게 하는 것이다. 즉, 객체도 기본 자료형 데이터처럼 취급한다고 생각하면 된다. 어떻게 하면 가능할까? 먼저 예제를 보자. 여기서 Dot은 x와 y좌표가 있는 점에 대한 클래스이다. dot1 객체는 x좌표가 1, y 좌표가 2이고 dot2 객체는 x좌표가 3, y 좌표가 4이다. 그리고 dot3은 dot1 객체와 dot2 객체를 + 연산자로 더한 객체이다. 실행 결과에서 dot3가 dot1과 dot2의 x좌표를 더한 값과 dot1과 dot2의 y좌표를 더한 값으로 멤버를 구성한 것을 확인할 수.. 2019. 10. 10.
[ C++ ] 클래스의 friend 선언, 함수의 friend 선언 friend는 친구라는 뜻이다. 근데 클래스의 friend 선언은 무슨 소리일까? A라는 클래스와 B라는 클래스가 있다고 가정하자. 근데 A 클래스가 " B 클래스는 제 친구예요. 믿을만합니다.. ㅎㅎ"라고 말했습니다(선언했습니다). 그럼 B클래스는 A클래스의 private에 접근 가능하게 된다. 즉, B클래스 내에 있는 A형 객체는 private 접근 가능하게 된다. 그럼 직접 코드로 보자. 클래스 A 내에 friend class B;으로 B가 자신의 친구임을 선언했다. (friend 선언은 클래스 내에 어디든 위치할 수 있다.) 그래서 클래스 B는 A의 private한 num을 호출할 수 있다. ( B도 클래스 A를 친구라고 선언해두면 반대로 A가 B의 private 접근도 가능하다! ) 또한 클래스.. 2019. 9. 26.