C++

explicit & 특수 멤버 함수

Keisa 2023. 9. 28. 18:48

● explicit 

: 암시적 형변환을 허용하지 않을 때 사용

ex) Mystring s1 = Mystring(5);

      Mystring s2 = 5; 

: 암시적 형변환 진행, int 타입을 받는 생성자를 호출, explicit가 없는 경우

explicit 생성자에서는 복사초기화는 사용할 수 없지만 직접 초기화는 사용할 수 있다.

 

● 특수 멤버 함수

1. 컴파일러가 스스로 작성할 수 있는 멤버 함수들, 즉 기본생성자와 소멸자, 복사연산들, 이동연산들을 가리켜 특수 멤버함수라고 부른다

2. 이동 연산들은 이동연산들이나 복사 연산들, 소멸자가 명시적으로 선언되어 있지 않은 클래스에 대해서만 자동으로 작성 : 이동연산, 복사연산, 소멸자의 명시적 선언 및 정의는 자동작성 함수들이 사용에 부적합하다는 뜻이므로 하나라도 선언되면 자동작성 함수를 생성하지 않음

'C++' 카테고리의 다른 글

std::make_unique & std::make_shared  (0) 2023.09.28
std::unique_ptr & std::shared_ptr & std::weak_ptr  (0) 2023.09.28
noexcept & constexpr  (0) 2023.09.28
enum/enum class  (0) 2023.09.28
별칭 선언(using)  (0) 2023.09.28