C++ Function


C++에서 함수는 코드의 재사용성을 높이고 프로그램을 구조화하는 중요한 도구입니다. 함수는 특정 작업을 수행하는 코드 블록을 정의하고 호출하여 사용할 수 있습니다. 함수에는 매개변수와 반환값이 있을 수 있으며, 함수 오버로딩과 재귀 함수 등의 다양한 기능이 제공됩니다.

함수 정의 및 호출

함수 정의

함수는 반환 타입, 함수 이름, 매개변수 리스트, 그리고 함수 본문으로 구성됩니다.

#include <iostream>

// 반환 타입이 int인 함수 정의
int add(int a, int b) {
    return a + b;
}

int main() {
    int result = add(3, 5); // 함수 호출
    std::cout << "Result: " << result << std::endl;
    return 0;
}

위의 예제에서 add 함수는 두 개의 정수 매개변수를 받아서 그 합을 반환합니다.

함수 호출

함수는 함수 이름과 함께 필요한 매개변수를 전달하여 호출할 수 있습니다.

int result = add(3, 5); // add 함수를 호출하여 3과 5의 합을 반환받음

매개변수 및 반환값

함수는 매개변수를 통해 값을 전달받고, 반환 타입을 통해 값을 반환할 수 있습니다.

기본 매개변수

매개변수는 함수가 호출될 때 전달받는 값을 의미합니다.

#include <iostream>

void printSum(int a, int b) {
    std::cout << "Sum: " << a + b << std::endl;
}

int main() {
    printSum(3, 5); // printSum 함수를 호출하여 3과 5의 합을 출력
    return 0;
}

반환값

함수는 return 키워드를 사용하여 값을 반환할 수 있습니다.

#include <iostream>

int multiply(int a, int b) {
    return a * b;
}

int main() {
    int result = multiply(4, 5); // multiply 함수를 호출하여 4와 5의 곱을 반환받음
    std::cout << "Result: " << result << std::endl;
    return 0;
}

함수 오버로딩

함수 오버로딩은 같은 이름의 함수를 여러 개 정의하되, 매개변수 리스트가 다르게 정의하는 것을 의미합니다.

#include <iostream>

// 정수를 더하는 함수
int add(int a, int b) {
    return a + b;
}

// 실수를 더하는 함수
double add(double a, double b) {
    return a + b;
}

int main() {
    std::cout << "Integer sum: " << add(3, 5) << std::endl; // 정수 더하기
    std::cout << "Double sum: " << add(2.5, 4.3) << std::endl; // 실수 더하기
    return 0;
}

재귀 함수

재귀 함수는 함수가 자기 자신을 호출하는 것을 의미합니다. 재귀 함수는 반복적인 작업을 수행하는 데 유용합니다.

#include <iostream>

// 팩토리얼을 계산하는 재귀 함수
int factorial(int n) {
    if (n <= 1) {
        return 1;
    } else {
        return n * factorial(n - 1);
    }
}

int main() {
    std::cout << "Factorial of 5: " << factorial(5) << std::endl; // 5의 팩토리얼 계산
    return 0;
}

인라인 함수

인라인 함수는 함수 호출 오버헤드를 줄이기 위해 컴파일러가 함수 호출을 해당 함수의 코드로 대체하는 것을 의미합니다. inline 키워드를 사용하여 정의합니다.

#include <iostream>

inline int square(int x) {
    return x * x;
}

int main() {
    std::cout << "Square of 4: " << square(4) << std::endl; // 4의 제곱 계산
    return 0;
}

예제

아래는 다양한 함수 개념을 사용하는 예제입니다:

#include <iostream>

// 정수 두 개를 더하는 함수
int add(int a, int b) {
    return a + b;
}

// 실수 두 개를 더하는 함수 (함수 오버로딩)
double add(double a, double b) {
    return a + b;
}

// 팩토리얼을 계산하는 재귀 함수
int factorial(int n) {
    if (n <= 1) {
        return 1;
    } else {
        return n * factorial(n - 1);
    }
}

// 제곱을 계산하는 인라인 함수
inline int square(int x) {
    return x * x;
}

int main() {
    std::cout << "Integer sum: " << add(3, 5) << std::endl; // 정수 더하기
    std::cout << "Double sum: " << add(2.5, 4.3) << std::endl; // 실수 더하기
    std::cout << "Factorial of 5: " << factorial(5) << std::endl; // 5의 팩토리얼
    std::cout << "Square of 4: " << square(4) << std::endl; // 4의 제곱
    return 0;
}

이 예제는 함수 정의 및 호출, 매개변수 및 반환값, 함수 오버로딩, 재귀 함수, 인라인 함수 등을 모두 보여줍니다. C++ 함수의 다양한 개념을 이해하고 활용하는 데 도움이 될 것입니다.


Leave a Reply

Your email address will not be published. Required fields are marked *