C++(80)
-
C++ Default Parameter - 2. 기본 문법과 사용법
✅ 2. 기본 문법과 사용법📌 기본 인자의 문법적 구조기본 인자(Default Parameter)는 함수의 매개변수에 미리 지정한 기본값을 설정하여,함수 호출 시 인자를 생략할 수 있도록 해주는 문법입니다.// b에 기본값 10을 설정int add(int a, int b = 10);add(5); // a = 5, b = 10 (b 생략됨)add(5, 20); // a = 5, b = 20 (b 명시적으로 전달)✅ 함수 호출 시 생략된 인자는 기본값으로 자동 대체됩니다.📌 여러 매개변수에서 Default Parameter 지정 시 유의사항C++에서는 기본 인자를 매개변수의 오른쪽부터 순서대로 지정해야 합니다.// ❌ 오류 발생: 기본 인자가 왼쪽에만 있음int multiply(int ..
2025.03.27 -
C++ Default Parameter - 1. 기본 개념 이해
1. 기본 개념 이해📌 Default Parameter란 무엇인가?Default Parameter(기본 인자)란, 함수를 호출할 때 일부 인자를 생략해도 함수가 실행되도록 미리 정해놓은 기본값(default value)을 의미합니다.void printMessage(std::string message = "Hello, World!") { std::cout 위 함수는 다음과 같이 사용할 수 있습니다:printMessage(); // 출력: Hello, World!printMessage("Hi there!"); // 출력: Hi there!즉, 인자를 전달하지 않아도 함수가 정상 작동할 수 있도록 해주는 문법입니다.📌 도입 배경과 사용 목적C++에서 Default P..
2025.03.27 -
C++ 함수 오버로딩 - 요약
📘 C++ 함수 오버로딩 요약✅ 개념 정리항목설명정의같은 이름의 함수를 매개변수의 개수나 타입을 다르게 하여 여러 개 정의하는 것바인딩 시점컴파일 타임(정적 바인딩)에 호출될 함수 결정대표 예print(int), print(string), print(double) 등✅ 오버로딩 규칙규칙설명함수 이름반드시 같아야 함매개변수개수 또는 타입이 달라야 함반환 타입반환 타입만 다른 것은 오버로딩 불가typedef별칭은 원래 타입과 동일하게 간주됨 (오버로딩 불가 기준)함수 포인터명확한 시그니처 지정 필요✅ 오버로딩과 관련된 특수한 상황상황설명const 참조int& vs const int& → 구분됨rvalue 참조int& vs int&& → 구분 가능 (C++11~)디폴트 인자디폴트 인자와 오버로딩을 혼용하면 ..
2025.03.26 -
C++ 함수 오버로딩 - 12. 정리 및 결론
✅ 12. 정리 및 결론📌 12-1. 함수 오버로딩의 장점과 한계✅ 함수 오버로딩의 장점장점설명🔹 코드 가독성 향상기능이 동일한 함수를 같은 이름으로 묶어, 의미 전달이 명확🔹 유지보수 용이동일한 함수 이름으로 다양한 입력 처리 → 함수 추가만으로 확장 가능🔹 정적 다형성 지원컴파일 타임에 가장 적합한 함수가 선택되어 성능 최적화🔹 인터페이스 일관성라이브러리/API 사용자가 일관된 방식으로 함수 사용 가능❗ 함수 오버로딩의 한계한계설명⚠ 모호한 호출 가능성비슷한 시그니처 간 충돌 발생 시 컴파일 오류⚠ 과도한 오버로딩 시 복잡도 증가유지보수 어려움, 어떤 함수가 호출되는지 명확하지 않을 수 있음⚠ 템플릿, 디폴트 인자, 네임스페이스 등과 함께 사용할 때 주의 필요예상 외 동작이나 오류 발생 가능..
2025.03.26 -
C++ 함수 오버로딩 - 11. 실제 활용 사례 및 응용
✅ 11. 실제 활용 사례 및 응용📌 11-1. 실무에서 자주 사용하는 오버로딩 패턴✔ 패턴 1: print()/log() 함수 다형성void log(int value);void log(const string& message);void log(double value);하나의 log() 이름으로 다양한 데이터 타입을 처리디버깅, 로깅, 출력 등 다형적 I/O 처리에 매우 유용✔ 패턴 2: 생성자 오버로딩class User {public: User(); // 기본 생성자 User(const string& name); // 이름 지정 생성자 User(const string& name, int age); // 전체 정보 생성자};입력 조건에 따라 다양한 방식의 객체 생성 가능✔ 패턴 3: 연산..
2025.03.26 -
C++ 함수 오버로딩 - 10. 함수 오버로딩 시 주의할 점
✅ 10. 함수 오버로딩 시 주의할 점📌 10-1. 모호한 호출(Ambiguous Call) 방지🔍 개념오버로딩된 함수가 너무 비슷하거나 디폴트 인자를 함께 사용할 경우,컴파일러가 어떤 함수를 호출해야 할지 결정하지 못하는 상황이 발생합니다.이를 모호한 호출(ambiguity)이라고 하며, 컴파일 오류로 이어집니다.✔ 예제 – 오류 발생:void func(int a);void func(int a, int b = 0);int main() { func(5); // ❌ 모호함: 둘 다 호출 가능 → 컴파일 오류}✔ 해결 방법:디폴트 인자를 없애거나,함수 시그니처를 명확히 다르게 구성void func(int a); void func(int a, double b); // ✅ 명확히 ..
2025.03.26