- [Modern C++ 정리] Move 4starryeye본격적으로 move 생성자 (이동 생성자)에 대해 알아보자.. Cat 클래스의 정의 및 선언 부이다. 16 line에서 const lvalue reference로 복사(copy) 생성자를 정의 하였다. rvalue, lvalue 모두 지원된다. 깊은 복사로 구현하였다. 24 line은 이동(move) 생성자이다. rvalue reference의 파라미터로 정의 되었다. rvalue가 지원된다. (rvalue를 넣으면 16 line 보다 우선이다.) 특징은.. 들어온 임시객체(rvalue)의 모든 값을 얕은 복사 한다. 임시 객체의 포인터 변수 name은 nullptr로 할당하여 이후, 호출 부분에서 임시객체가 파괴 될때, 포인터 변수의 name이 해제 되지 않도록 한다. 위와 같이 rvalue의 값을 변..
- 2022-09-08 21:59:22
- [Modern C++ 정리] Move 3starryeyemove를 알아보기 위해 먼저 copy를 알아보자.. 위 코드의 문제점에 대해 알아보자.. main() 함수에서.. Cat 클래스의 c1 이라는 지역 객체 를 선언 하였다. c2라는 지역 객체를 선언하고 c1으로 복사 대입 연산자로 초기화 하였다. C++에서는 복사 대입 연산자로 초기화 할 경우, 복사 생성자가 호출 된다. Cat 클래스에서 현재 복사 생성자가 없는데 이때 컴파일러가 생성해준다. 생성해주는 복사 생성자는 얕은 복사로 생성된다. 그래서 해당 코드의 문제는 복사 생성자(얕은 복사)로 c2가 초기화 되기 때문에.. c1의 포인터 변수 name 과 c2의 포인터 변수 name이 동일한 값을 가지게 된다. 그리고.. main() 함수 블럭이 끝날 때.. c1, c2의 소멸자가 불리게 되는데.. c..
- 2022-09-08 20:58:38
- [C++] move와 copystarryeyeC++ 11의 개념이다. 해당 개념 포스팅은 시간적 여유가 생긴다면.. 추후 진행할 예정이다.. 포스팅 할 개념 깊은 복사와 얕은 복사 rvalue, lvalue 와 그에 따른 복사 생성자, 이동 생성자 와 복사 할당 연산자, 이동 할당 연산자 std::move std::vector의 push_back, emplace_back 함수 좋은 포스팅 https://docs.microsoft.com/ko-kr/cpp/cpp/move-constructors-and-move-assignment-operators-cpp?view=msvc-170 https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=jidon333&logNo=60211056131
- 2022-07-15 20:04:46
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)