C++함수와 클래스

함수와 오버로딩

함수 선언, 반환값, 기본 인자, 오버로딩처럼 C++ 함수 인터페이스의 핵심 규칙을 정리합니다.

마지막 수정 2026년 3월 19일

기본 패턴

cpp
int add(int left, int right) {
    return left + right;
}

double add(double left, double right) {
    return left + right;
}

설명

  • 함수는 입력과 출력을 명시해 계산 단위를 나누는 가장 기본적인 수단입니다.
  • C++는 같은 이름으로 매개변수 타입이나 개수가 다른 함수를 여러 개 둘 수 있는데, 이를 오버로딩이라 합니다.
  • 기본 인자는 호출 쪽을 간결하게 만들 수 있지만, 지나치게 많으면 인터페이스가 모호해질 수 있습니다.
  • 참조와 const를 함께 쓰면 함수 성능과 안정성을 개선하기 쉽습니다.

짧은 예제

cpp
#include <iostream>
#include <string>

void greet(const std::string& name, int level = 1) {
    std::cout << "Hello " << name << " (level " << level << ")\n";
}

int main() {
    greet("Mina");
    greet("Jin", 3);
}

빠른 정리

항목설명
반환 타입함수 결과의 타입
매개변수함수 입력
오버로딩같은 이름의 다른 함수 시그니처
기본 인자일부 인자를 생략 가능하게 함
const&복사 비용을 줄이는 대표 패턴

주의할 점

오버로딩이 많아지면 어떤 함수가 선택되는지 헷갈릴 수 있습니다. 이름만 같고 의미가 너무 다른 함수는 피하는 편이 좋습니다.