Deleted function
: function 을 사용하지 않고 지워버림을 명시적으로 나타내는 syntax.
Mutex class에서 복사생성자가 필요가 있을지 생각해보자.
개발자가 어떤 function 이나 operator 를 삭제하길 원한다면 delete 키워드를 사용하면 된다.
위 예제에서는 복사생성자가 동작하지 않길 원하기 때문에 복사생성자, 그리고 =(대입연산자)를 삭제했다.
그리고 반드시 private 에 쓸 필요는 없지만,
어차피 복사생성자를 안쓰려는게 목적이기 때문에 private 에 쓰는 것이 더 좋다.
delete 사용시 주의할 점은 삭제하려는 function 의 선언시에 사용되어야 한다는 점이다.
선언 이후에 삭제할 수는 없다.
또한 default 생성자를 명시적으로 나타내는 키워드로 default 를 사용할 수 있다.
물론 Mutex() {} 와 같이 사용할 수 있지만,
C++창시자는 Mutex() = default; 라고 쓰는게 더 직관적이지 않냐고 얘기한바 있다.
피드 구독하기:
댓글 (Atom)
[C++] meta programing
재귀 호출에 관해 template meta programming 을 적용한 예제를 살펴보자. #include using namespace std; int fact(int n){ if(n factorial 연산을 하는 일반적인 재귀 호출 함...
-
Smart Pointer : 포인터처럼 동작하며 자동으로 메모리를 해제하고 안전하게 resource를 관리하도록 돕는 객체 포인터는 소멸자가 호출되지 않아 memory leak이 발생한다. Java, C#같은 VM이 있는 언어는 VM에서 G...
-
nullptr 란? C++11 에서 지원하는 null pointer 상수 먼저 pointer 가 초기화될 수 있는 정수 값을 살펴보자. 정수 0은 모든 타입의 포인터에 암시적 형변환을 통해서 초기화 값으로 사용될 수 있다. 하지만 그 이...
-
자료 구조를 순회하여 데이터에 접근하는 방법을 살펴보자. Container 에 저장된 데이터에 접근하기 위해 대표적으로 Iterator의 begin(), end() function 을 사용한다. 하지만 위 예제에서 show() 함수에 배열이...
댓글 없음:
댓글 쓰기