[완료] Ivor Horton 의 "beginning ANSI c++" 예제 중에서 이해가...
글쓴이: lampo / 작성시간: 토, 2008/08/16 - 7:51오후
Ivor Horton 의 "beginning ANSI c++" 제 3 판의 예제인데
잘 안되는 군요.
다음 예제는 이 책(번역본, 에이콘출판사)의 p.354 내용입니다.
아래 코드와 같이 레퍼런스타입 매개변수에 const 를 부가하면 상수를 인수로 받을수
있다고 설명하고 있군요. 그러나 컴파일하면 안됩니다.
저자는 자신있게 된다고 적어놨는데...
이 사람 믿어도 될까 싶네요.
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int larger(int& m, int& n);
int main() {
int value1 = 10;
int value2 = 20;
cout << endl << larger(value1, value2) << endl;
cout << endl << larger(value1, 15) << endl; // 요부분.
return 0;
}
int larger(const int& m, const int& n) { // 요부분.
return m > n ? m : n;
}
Forums:
이 경우 컴파일러가
이 경우 컴파일러가 알아서 임시 변수를 만들어줘야 하는데 컴파일러 탓을 해보세요.
-> 수정: 그렇게 돼있었군요. 이 경우 컴파일러가 처음에 int &로 인식하여 임시 변수를 만들지 않은 것 같은데,
const int &로 실제 돼있을 때 아무 말도 안 했군요. const는 상관 없다는 규정이 표준에 있나요?
Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.
함수 선언에서...
함수 선언에서
이것을
int larger(int& m, int& n);
이렇게
int larger(const int& m, const int& n);
고맙습니다. primewizard 님.
제 실수였네요. 가르쳐주셔서 감사합니다.
댓글 달기