본문 바로가기

Programming Languages

(32)
[함수]-인수의 전달-디폴트 인수 함수의 인수 중 특정 인수는 일반적으로 사용하는 디폴트 값이 있고, 특별한 경우에만 다른 값을 사용하는 경우가 있다. 이런 경우에는 디폴트 인수를 사용할 수 있다. [소스코드 3-8]은 반올림을 하는 함수 Round()룰 사용하여 원하는 자리에서 반올림을 할 수 있도록 하는 프로그램이다. #include #include using namespace std; double Round(double x, int d = 0); int main() { double a; cout > a; cout
[함수]-인수의 전달-const 매개변수 참조 호출을 하거나 매개변수가 포인터인 경우 함수 내에서 호출 루틴의 실 매개변수를 수정할 수 있다. 그러나 이러한 방식의 호출을 했다고 해도 실 매개변수의 값을 보호하고 싶을 때에는 해당 형식 매개변수를 const로 지정하면 된다. 이러한 형태의 매개변수는 데이터의 크기가 큰 인수를 전달할 때 유용하게 사용할 수 있다. 만일 이러한 데이터를 값 호출 방식으로 전달하면 이를 복사하기 위해 많은 시간이 소비되며, 메모리도 많이 소비된다. 이런 경우에는 참조 호출을 이용하는 것이 바람직하다. 그러나 참조 호출을 하면 호출한 루틴에서 전달한 인수가 함수를 실행한 후 원래의 값을 유지하고 있다는 것을 보장받지 못한다. 이때 실 매개변수의 값이 변경되지 않음을 보장하기 위해 함수의 형식 매개변수에 const를 지..
[함수]-인수의 전달-참조 호출 값 호출과는 달리 참조 호출은 실 매개변수의 참조, 즉 주소를 전달한다. 이에 따라 형식 매개변수는 전달되는 실 매개변수의 별명처럼 사용된다. C 언어에서는 참조 호출 방식을 제공하지 않기 때문에, 참조 호출이 필요할 때는 포인터를 전달하는 방법을 사용하였다. 그러나 C++ 언어에서는 참조형을 사용 할 수 있다. 다음 프로그램은 참조 호출을 사용하는 함수를 사용하는 예이다. // 소스코드 3-5 : SwapInt.cpp #include using namespace std; void SwapValues(int& x, int& y); // 원형 int main() { int a, b; cout > a >> b; if (a < b) SwapValues(a, b); // 순서를 바꿔 a에 큰 값을 넣음 cout
[함수]-인수의 전달-값 호출 #include using namespace std; // 화씨온도를 섭씨온도로 변환하는 함수 // 매개변수 float fahr : 화씨온도 // 반환값 섭씨온도(float) float FahrToC(float fahr) { // 함수 FahrToC()를 정의 return (fahr - 32) * 5 / 9; } int main() { float fTemp, cTemp; cout > fTemp; cTemp = FahrToC(fTemp); // 함수 호출 cout
[함수]-함수의 정의와 호출-함수 사용의 장점과 단점 #include using namespace std; int main() { double a[50], b[100]; ..... // 생략 - a와b에 각각 50개와 100개의 데이터 입력 double sum = 0, sqSum = 0; for (int i = 0; i < 50; i++) { sum += a[i]; sqSum += a[i] * a[i]; } cout
[함수]-함수의 정의와 호출-함수의 호출 함수를 호출할 때에는 함수의 이름과 함께 필요한 인수를 전달한다. functionName(aParameterList); varName = functionName(aParameterList); 형식1은 void형 함수나 반환된 값을 사용할 필요가 없을 때 사용한다. 형식2는 함수를 실행한 후 반환된 값을 사용하는 문장의 예이다. 여기에서는 지정된 변수에 함수가 반환하는 값을 넣는 것을 대표적으로 예시한 것이며, 함수를 수식에 직접 넣어 반환되는 값을 연산에 바로 사용할 수도 있다. aParameterList에는 함수에 전달할 인수를 나열한 것으로, 각각의 인수에 해당되는 상수, 변수, 수식 등을 실 매개변수(actual parameters)라고 한다. 다음 프로그램은 화씨온도를 섭씨온도로 환산하는 함수를 ..
[함수]-함수의 정의와 호출-함수의 정의 함수는 C++ 프로그램을 구성하는 기본 단위이다. 모든 프로그램은 최소한 1개의 함수로 구성된다. 함수란 필요한 작업을 수행하는 프로그램 문장들을 하나의 단위로 모아 놓고, 이에 이름을 부여한 것이다. 이렇게 정의하여 놓은 함수는 프로그램의 다른 부분에서 필요할 때 호출하여 사용할 수 있다. 함수를 호출할 때에는 함수가 필요로 하는 데이터 또는 객체를 인수로 전달하여야하며, 함수는 정의된 처리를 한 후 필요하면 그 결과를 호출한 문장으로 되돌려 준다. 프로그램을 고유한 기능을 수행하는 여러 개의 함수로 나누어 작성하는 것은 기존의 프로그래밍 기법에서 프로그램을 간결하고 유지, 보수하기 쉽도록 만들기 위해 흔히 사용되고 있다. 또한 반복적으로 사용되는 작업을 함수로 만들고, 필요한 곳에서 이를 호출하여 사..
참조 포인터와 유사한 개념을 지원하는 것으로 참조(reference)가 있다. 어떠한 변수에 대한 참조는 그 변수의 별명이라고 할 수 있다. 참조형은 ' & ' 기호를 이용하여 다음과 같은 형식으로 선언한다. TypeName &refVar = varName; 참조는 초기화를 통해 참조 대상을 지정해야 한다. 위의 형식에서 refVar를 varName으로 초기화한 것은 refVar에 varName의 값을 넣는 것이 아니라 refVar가 varName을 참조하도록 지정함으로써 앞으로 refVar를 사용하는 것이 varName을 사용하는 것과 동일한 결과를 내도록 하는 것이다. 다음의 예를 살펴보자. int a = 10;, b = 20; int &aRef = a; // aRef는 정수형 변수 a에 대한 참조 cout