Chapter Review
(C++ Primer Plus 6th, pp.66-67.)
1. What are the modules of C++ programs called?
C++ 프로그램을 구성하는 모듈을 무엇이라 부르는가?
Answer.
함수
2. What does the following preprocessor directive do?
다음과 같은 전처리 지사자가 하는 역할은 무엇인가?
#include <iostream>
Answer.
"iostream" 헤더 파일을 현재 작성중인 프로그램 파일에 포함시킨다.
3. What does the following statement do?
다음과 같은 구문이 하는 역할은 무엇인가?
using namespace std;
Answer.
위 구문이 정의된 범위내에서, 이름공간 "std"의 개체들을 추가적인 명시적 표현없이 사용할 수 있게 허용한다.
4. What statement would you use to print the phrase “Hello, world”
and then start a new line?
"Hello, world"라는 문자열을 출력하고 새 행을 시작하려면 어떤 구문을 사용해야 하는가?
Answer.
cout << "Hello, world" << std::endl;
5. What statement would you use to create an integer variable with the name
cheeses?
cheeses라는 이름의 정수형 변수를 생성하려면 어떤 구문을 사용해야 하는가?
Answer.
int cheeses;
6. What statement would you use to assign the value 32 to the variable cheeses?
cheeses라는 변수에 값 32를 대입하려면 어떤 구문을 사용해야 하는가?
Answer.
cheeses = 32;
7. What statement would you use to read a value from keyboard input into the variable cheeses?
키보드로부터 값을 입력받아 cheeses에 대입하려면 어떤 구문을 사용해야 하는가?
Answer.
cin >> cheeses;
8. What statement would you use to print “We have X varieties of cheese,”where the current value of the cheeses variable replaces X?
"We have X varieties of cheeses"를 출력하되, X 자리에 변수 cheeses에 현재 들어 있는 값을 출력하려면 어떤 구문을 사용해야 하는가?
Answer.
cout << "We have " << cheeses << "variables of cheese";
9. What do the following function prototypes tell you about the functions?
다음과 같은 함수 원형들을 보고, 그 함수들에 대해 무엇을 알 수 있는가?
int froop(double t);
void rattle(int n);
int prune(void);
Answer.
"froop" 함수의 return type 은 정수형이며, argument로 실수형 데이터 하나를 받는다.
"rattle" 함수의 return type은 void, 즉 반환값이 없으며, argument로 정수형 데이터 하나를 받는다.
마지막으로 "prune" 함수는 정수형 데이터를 반환하며, arument로 아무 데이터도 받지 않는다.
10. When do you not have to use the keyword "return" when you define a function?
함수 정의에서 return이라는 키워드가 필요 없을 때는 언제인가?
Answer.
함수의 return type이 "void" type일 경우, return 구문을 사용하지 않아도 문제가 없다.
11. Suppose your main() function has the following line:
main() 함수가 다음과 같은 명령어를 실행한다고 가정하자:
cout << “Please enter your PIN: “;
And suppose the compiler complains that cout is an unknown identifier.
What is the likely cause of this complaint,and what are three ways to fix the problem?
그리고 이 컴파일러가 cout이 unknown identifier 이라는 에러 메세지를 출력한다고 가정한다면, 이 에러의 원인은 무엇이겠는가? 그리고 이 문제를 해결할 수 있는 방법은 무엇인가?
Answer.
프로그램 내에서 "cout"이라는 객체의 정의가 존재하지 않아서 발생하는 오류이다.
따라서 "cout" 객체가 정의되어 있는 "iostream"파일을 포함할 것을 preprocessor에 지시하고,
"std" 이름공간을 포함시키거나 "cout" 객체에 "std" 이름공간 내의 객체임을 명시해주는 표현을 사용한다.
#include <iostream>
using namespace std;
// std 이름공간 내의 객체는 따로 명시적 표현을 하지 않아도 알아서 인식하게 해주는 명령
int main(){
cout << "please enter your PIN: ";
}
// 다른 정답
#include <iostream>
int main(){
std::cout << "please enter your PIN: ";
//cout이 std이름공간 내의 std를 사용함을 명시해주는 표현
}