함수

    누가 함수와 메서드의 차이를 물어보거든 이렇게 답하라

    누가 함수와 메서드의 차이를 물어보거든 이렇게 답하라

    보통 함수라고 부르는 function은 '이름으로 불려지는 특정 코드의 집합'을 의미합니다. 메서드라고 부르는 method는 '특정 객체에 포함된 이름으로 불려지는 특정 코드의 집합'이다. 간단하게 '멤버 함수' == '메서드' 라고 볼 수 있습니다. 함수가 메서드보다 더 큰 범위라고 할 수 있다. 앞으로 메서드는 객체에 포함된 멤버 함수를 바로 떠올리면 됩니다.

    함수의 설계와 객체의 복사

    함수의 설계와 객체의 복사

    전 책에서 이 부분을 좋아합니다. 왜냐하면 이 책을 읽지 않았더라면 평생 모르고 생각하지도 않고 살았을 테니까요. 같은 기능의 함수라도 매개변수와 반환형을 다르게 할 수 있고 그거에 따른 복사 생성자와 대입 연산자 사용 횟수를 저는 절대 생각하고 깨닫지 못했을 거니까요. φ(◎ロ◎;)φ 여기 Complex 클래스가 정의돼있습니다. class Complex { double real, imag; // 복소수의 실수부와 허수부 public: Complex(double r = 0, double i = 0) : real(r), imag(i) { } //... }; void main() { Complex a(1,2), b(3,4), c; } 복소수 객체 a와 b를 더해 c에 저장하려고 합니다. 물론 계산 후 a와 ..

    함수로 배열을 전달, 반환

    함수로 배열을 전달, 반환

    함수로 배열을 전달하는 방법은 함수를 호출할 때 전달인자(argument)에 배열의 시작주소를 전달하는 것입니다. 하지만, 이제 함수에서 전달 받게 되면 방법이 두가지로 나뉘어지게 됩니다. 배열명[]로 받는 방법과 포인터로 받는 방법 #include //배열의 길이를 같이 전달 해줘야 한다. int findMaxValue(int a[], int len) { int maxVal = a[0]; for (int i = 1; i

    변수의 가시 범위와 생존기간

    변수의 가시 범위와 생존기간

    변수와 함수는 밀접하게 관련되어 있습니다. 예를 들어, 함수가 끝나면 지역 함수 내의 변수들과 매개변수들은 모두 자동으로 소멸됩니다. 모든 변수는 다음의 세 가지 속성이 있고, 이러한 속성에 따라 여러 가지로 분류할 수 있습니다. 범위(visibility): 코드 내에서 변수가 의미 있는 영역 생존기간(lifetime): 만들어지는 시점과 소멸되는 시점 연결(linkage): 외부에서 선언된 변수를 사용하는 방법 지역변수와 전역변수 변수는 의미를 갖는 범위에 따라 지역변수와 전역변수로 나눌 수 있습니다. 지역(local) 변수 중괄호 { }로 정의되는 블록 안에서 선언되는 변수로 블록 범위(block scope)를 갖는다. 함수 안에서 선언된 변수가 대표적인데, 변수가 선언된 블록(함수 몸체) 안에서만 ..

    라이브러리 함수와 사용자 정의 함수

    라이브러리 함수와 사용자 정의 함수

    #라이브러리 함수 미리 만들어져서 제공되는 함수 printf(), getch() 등이 대표적인 라이브러리 함수이다. 다음은 라이브러리 함수들의 예를 표로 보여준다. 함수 원형 헤더 파일 용도 및 사용 예 iny getch(); 키보드에서 하나의 문자를 읽어서 반환함 예)ch = getch(); double cos( double x ); x에 대한 코사인 값을 계산하여 반환함 예)val = cos(3.14); double pow( double x, int y ); x의 y승을 계산하여 반환함 예)result = pow(x,10); int printf( const char *format [, argument]... ); "format"에서 지정하는 형태로 화면에 출력함 매개변수는 없을 수도 있고 여러 개일 ..

    함수란?

    함수(function)는 어떤 입력을 받아서 원하는 처리를 한 후 결과를 반환함. 가끔은 입력이 없거나(not parameter, not argument) 결과를 직접 반환하지 않는(void return) 함수도 있다. 또한, 함수(function)는 객체지향 언어에서 메소드(method)라고도 불림. 같은 코드들을 반복적으로 쓰이는 문제를 해결한다. 반복되는 코드를 함수로 만들어 사용하면 중복을 최소화하고 코드양을 줄인다. 이것은 개발은 물론이고 코드의 수정이나 유지 보수를 훨씬 편하고 쉽게 한다. 크고 복잡한 문제를 작고 쉬운 문제들로 나누어 해결하기 쉽게 한다. 즉, 하나의 큰 프로그램을 작은 부분들로 분리하여 구조적인 프로그래밍이 가능하게 한다. 이러한 문제 해결 방법을 분할 정복(divide a..