언어/C++

2. C++ 함수와 네임스페이스

에린_1 2023. 1. 16. 21:16
728x90
  • 디폴트 매개변수
    • 호출자만 보고 함수 원형 추측 불가
    • 반드시 오른쪽 매개변수부터 기술
  • 함수 다중정의
    • 오버로딩( 함수의 매개변수가 달라지는 등 )
    • 다형성을 제공한다.
  • 함수 템플릿
    • 오버로딩 VS 함수 템플릿
    • 오버로딩 - 유지보수 측면에서 문제. 불필요한 코드 작성시 메모리 낭비.
    • 함수 템플릿 - 컴파일러가 생성. 컴파일 시간 UP
  • 인라인 함수
    • 함수 호출로 인한 오버헤드 극복
    • 오버헤드 - 스택메모리 UP ,매개변수 때문에 메모리 복사
    • 최적화 옵션을 켜두면 컴파일러가 알아서 결정해준다.
  • 네임스페이스
    • 협업중, 다른 개발자와 변수명이 겹치는 문제 해결
  • using 선언
    • 자주 사용하는 네임스페이스 생략
  • 네임 스페이스 중첩
    • 네임 스페이스 안에 또 다른 네임스페이스 속할 수 있다.
    • A::B::C 와 A::D 이런식으로 구별.
  • 식별자 검색 순서
    • 전역 함수 (현재 블록 범위 → 현재 블록 포함된 상위 블록 → 가장 최근에 선언된 전역 변수, 함수 → using 사용된 네임스페이스)
    • 클래스 매서드(현재 블록 범위 → 현재 블록 포함된 상위 블록 → 클래스 멤버 → 부모 클래스 멤버→ 가장 최근에 선언된 전역 변수나 함수 → 호출자가 속한 namespace의 상위 namespace → using 선언된 namespace)
728x90

'언어 > C++' 카테고리의 다른 글

6. 클래스의 완성  (0) 2023.01.19
5. 연산자 다중정의  (0) 2023.01.17
4. 복사 생성자 & 임시객체  (0) 2023.01.17
3. 클래스  (0) 2023.01.16
1. C와 C++ 차이  (2) 2023.01.16