[C++] default와 delete
카테고리: Cpp
이 글은 C++ default와 delete를 공부하고 정리한 글입니다
default 키워드
- default 키워드를 사용하면, 컴파일러가 특정한 생성자, 연산자 및 소멸자를 만들어 낼 수 있음
- 그래서, 비어 있는 생성자나 소멸자를 구체화할 필요가 없음
- 또한 기본 생성자, 연산자 및 소멸자를 더 분명하게 표시할 수 있음
- 명확하게 표현하는 것은 항상 좋다
코드 예제
// Dog.h class Dog { public : Dog() = default; };
delete 키워드
- 컴파일러가 자동으로 생성자를 만들어 주길 원치 않는다면 delete 키워드를 사용
-
올바른 에러 메시지도 나옴
코드 예제
// Dog.h class Dog { public : Dog() = default; Dog(const Dog& other) = delete; }; // Main.cpp #include "Dog.h" int main() { Dog myDog; Dog copiedMyDog(myDog); // 에러 }
베스트 프랙티스
- 컴파일러가 코드를 생성하는 암시적 방식에 기댈 필요가 없음
- 명확해야 함
- 어디에나 default / delete 키워드를 넣자
참조
💻 열심히 공부해서 작성 중이니 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 알려주시면 감사하겠습니다! 😸
댓글 남기기