Program Language/C & C++

[C++] 함수의 지정자와 수정자

야곰야곰+책벌레 2022. 1. 13. 09:42
728x90
반응형

이름, 인수 집합 및 반환 유형을 지정하는 것 외에도 함수 선언에는 다양한 지정자와 수정자가 포함될 수 있다.

  • 함수의 이름 (필수)
  • 인수 목록, 없을 경우 ()로 표시 (필수)
  • 반환 유형은 void 일 수 있고 접두사 접미사 일 수 있다 (필수)
  • inline. 함수 본문을 인라인 하여 함수 호출을 구현
  • constexpr. 상수 표현식이 인수로 주어지면 compile-time에 함수를 평가할 수 있어야 함을 나타냄
  • noexcept. 함수가 예외를 throw하지 않을 수 있음
  • [[noreturn]]. 일반 호출/반환 메커니즘을 사용하여 함수가 반환되지 않음.

또한 멤버 함수는 다음과 같이 지정할 수 있다.

  • virtual. 파생 클래스에서 재정의할 수 있음
  • override. 기본 클래스의 가상 기능을 재정의해야 함
  • final. 파생 클래스에서 재정의할 수 없음
  • static. 특정 객체와 연결되어 있지 않음
  • const. 객체 수정을 할 수 없음

이렇게 까지 표현할 수 있다. (두통 유발)

struct S {
	[[noreturn]] virtual inline auto f(const unsigned long int ∗const) −> void const noexcept;
};
728x90
반응형

'Program Language > C & C++' 카테고리의 다른 글

[C++] 미리 정의된 매크로  (0) 2022.01.13
[C++] constexpr 함수  (0) 2022.01.13
[C++] 명시적 유형 변환  (0) 2022.01.12
[C++] lambda expression  (0) 2022.01.07
[C++] Constant Expressions  (0) 2022.01.06