# include < iostream > using namespace std ; class TV { private : int channel ; char brand [ 20 ] ; public : void init ( int e _ channel , char * e _ brand ) { channel = e _ channel ; strcpy ( brand , e _ brand ) ; } int get _ channel ( ) { return channel ; } char * get _ brand ( ) { return brand ; / / brand 가 주소 값 을 가지 고 있 으므로 그것 을 참조 해서 들어가 야 만 brand 명 을 알 수 있 으므로 * get _ brand } void information ( ) { cout <<"========= TV 정보 ========="<< endl ; cout <<" Brand : "<< brand << endl ; cout <<" Channel : "<< channel << endl ; } int confirm _ brand ( char * e _ brand ) { return strcmp ( brand , e _ brand ) ; ===> 같 은 값 을 가지 고 있 으면 ' 0 ' 아니 면 ' 1 ' } void change _ channel ( int e _ channel , char * e _ brand ) { if ( ! confirm _ brand ( e _ brand ) ) { channel = e _ channel ; ===> 브랜드 확인 후 TV 채널 변경 } }}; class RC { private : int channel ; char brand [ 20 ] ; public : void init ( int e _ channel , char * e _ brand ) { channel = e _ channel ; strcpy ( brand , e _ brand ) ; } int get _ channel ( ) { return channel ; } char * get _ brand ( ) { return brand ; } void set _ channel ( int e _ channel ) { channel = e _ channel ; }}; int main ( ) { TV samsung ; TV lg ; RC rc _ lg ; RC rc _ samsung ; int sel 1 ; int channel ; int sel 2 ; lg . init ( 1 , " LG "); samsung . init ( 5 , " Samsung "); rc _ lg . init ( 1 , " LG "); rc _ samsung . init ( 5 , " Samsung "); while ( 1 ) { lg . information ( ) ; / / init 함수 로 초기 화 시켜 준 값 을 출력 samsung . information ( ) ; / / init 함수 로 초기 화 시켜 준 값 을 출력 cout <<" 어떤 TV 의 채널 을 바꿀 건가요 ? 1 . LG 2 . Samsung 3 . 안 바꿈 "<< endl ; cout <<" 선택 =======>>>"; cin >> sel 1 ; if ( sel 1 == 3 ) { exit ( 1 ) ; } cout <<" 어떤 리모 콘 을 사용 할 건가요 ? 1 . LG 2 . Samsung "<< endl ; cout <<" 선택 =======>>>"; cin >> sel 2 ; cout <<" 몇 번 으로 바꿀 건가요 ? "<< endl ; cout <<" 선택 =======>>>"; cin >> channel ; switch ( sel 1 ) { case 1 : if ( sel 2 == 1 ) / / 둘 다 LG 선택 했 을 경우 { rc _ lg . set _ channel ( channel ) ; lg . change _ channel ( rc _ lg . get _ channel ( ) , rc _ lg . get _ brand ( ) ) ; } else / / TV 는 LG 리모 콘 은 samsung 선택 했 을 경우 { rc _ samsung . set _ channel ( channel ) ; lg . change _ channel ( rc _ samsung . get _ channel ( ) , rc _ samsung . get _ brand ( ) ) ; } break ; case 2 : if ( sel 2 == 1 ) { rc _ lg . set _ channel ( channel ) ; samsung . change _ channel ( rc _ lg . get _ channel ( ) , rc _ lg . get _ brand ( ) ) ; } else { rc _ samsung . set _ channel ( channel ) ; samsung . change _ channel ( rc _ samsung . get _ channel ( ) , rc _ samsung . get _ brand ( ) ) ; } break ; } system ( " cls "); } return 0 ;}