함수 인수가 참조 형식
것이 훨씬 효율적 기능에 큰 개체 대신 참조를 전달 합니다.이 컴파일러를 주소는 개체의 개체에 액세스 하려면 사용 될 구문을 유지 하면서 전달할 수 있습니다.다음 예제를 사용 하는 것이 좋습니다 있는 Date 구조:
// reference_type_function_arguments.cpp
struct Date
{
short DayOfWeek;
short Month;
short Day;
short Year;
};
// Create a Julian date of the form DDDYYYY
// from a Gregorian date.
long JulianFromGregorian( Date& GDate )
{
static int cDaysInMonth[] = {
31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
};
long JDate = 0;
// Add in days for months already elapsed.
for ( int i = 0; i < GDate.Month - 1; ++i )
JDate += cDaysInMonth[i];
// Add in days for this month.
JDate += GDate.Day;
// Check for leap year.
if ( GDate.Year % 100 != 0 && GDate.Year % 4 == 0 )
JDate++;
// Add in year.
JDate *= 10000;
JDate += GDate.Year;
return JDate;
}
int main()
{
}
멤버 선택 연산자를 사용 하 여 참조에 의해 전달 되는 구조체의 멤버 액세스 되는 앞의 코드를 보여 줍니다 (.) 포인터 멤버 선택 연산자 대신 (->).
구문이 아닌 포인터 형식의 참조 형식으로 전달 되는 인수를 관찰 하는 있지만 포인터 형식의 한 가지 중요 한 특징을 유지 합니다:는 선언 하지 않으면 수정할 수 const.이 코드 개체를 수정 하는 것 때문에 GDate, 적절 한 함수 프로토타입 있습니다:
long JulianFromGregorian( const Date& GDate );
이 함수는이 프로토타입을 보장 JulianFromGregorian 인수는 변경 되지 않습니다.
표준 변환 때문에 프로토타입 참조 형식으로 작성 한 함수 대신에서 같은 형식의 개체를 받아들일 수 유형 이름 에 유형 이름및.