● 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 |