게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
클래스의 friend선언에 대해서 질문
게시물ID : programmer_11371짧은주소 복사하기
작성자 : ㅜ_ㅠ
추천 : 0
조회수 : 390회
댓글수 : 4개
등록시간 : 2015/06/17 21:11:08
아래의 소스를 컴파일하면 
 error C2039: 'OutToday' : 'Time'의 멤버가 아닙니다.
 'Time' 선언을 참조하십시오.
1>
라고 나오는데요
그런데 friend선언을 클래스에 하면
선언을 받은 클래스는 friend선언한 클래스의 모든 맴버에 접근할 수 있는 걸로 아는데
근데 왜 Time와 Date클래스에 서로의 클래스를 friend선언을 했는데 
T.OutToday(T); 문장에서  'Time'의 멤버가 아니라고 나오나요?
클래스에 프랜드를 선언하면 상대편 클래스에서 맴버변수와 함수 전부 다 접근 가능한 것 아닌가요?
양 클래스에 프렌드 선언을 했는데 어째서 이런 에러가 나오는지 알고 싶네요.

#include <iostream>
#include <string.h>



class Time
{
friend class Date;
private:
int hour,min,sec;
public:
Time(int h,int m,int s)
{
hour=h;
min=m;
sec=s;
}
};
class Date
{
friend class Time;
private:
int year,month,day;
public:
Date(int y,int m,int d)
{
year=y;
month=m;
day=d;
}
void OutToday(Time &t)
{
printf("오늘은 %d년 %d월 %d일이며 지금 시간은 %d:%d:%d입니다.\n",year,month,day,t.hour,t.min,t.sec);
}
};
void main()
{
Date D(2005,01,22);
Time T(12,34,56);
T.OutToday(T);
}

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호