assignment operator

·C++/기타
저번 포스트에서 다룬 복사 방식의 대입 연산자 오버로딩은 l-value에 대해서 작동합니다. 이번 포스트에서 다룰 이동 대입 연산자 오버로딩은 r-value를 다룹니다. 다음 코드 조각을 살펴봅시다. Mystring s1; s1 = Mystring{"Ricky"};// Move Assignment 여기서 empty string을 담는 Mystring 객체 s1을 선언했습니다. 그리고 s1에 Mystring{"Ricky"}를 통해서 Ricky라는 문자열을 속성으로 지닌 Mystring 객체를 할당했습니다. 여기서 중요한 점은, s1에 값을 저장하기 위해서 새로운 이름 없는 임시 객체를 만들고, 그 값을 s1에 저장을 한 뒤에 임시 객체를 제거합니다. 이것이 r-value 객체입니다. 하지만 아시다시피 이런..
·C++/기타
lhs = rhs 할당 연산자를 사용하면, rhs 값이 lhs에 저장됩니다. 수학에서의 개념처럼, '=' 는 좌항과 우항의 값이 동일하다는 의미가 아닙니다. 여기서 rhs와 lhs의 변수 타입은 동일해야 합니다. (char 데이터를 숫자 변수에 할당할 시, ASCII Code 값이 저장됩니다.) 또한, 하나의 statement로 여러개의 변수에 대한 같은 값의 할당을 처리할 수 있습니다. * 변수 초기화와는 다른 개념입니다. int num1 {10};// 변수 선언 및 초기화 float num2 = 30.51;// 변수 선언 및 초기화 num1 = 30;// 할당 연산자를 통한 값 할당 num2 = 3.14;// 할당 연산자를 통한 값 할당 num1 = num2 = 500;// 2개 이상의 변수 동시 할..
Ricky U. Lee
'assignment operator' 태그의 글 목록