- 연산자
변수를 사용해서 특정한 결과를 리턴하는 것을 연산자라고 한다.
변수가 1개 필요하면 단항 연산자이다. ex) !
변수가 2개 필요하면 이항 연산자이다. ex) +, *, -
변수가 3개 필요하면 삼항 연산자이고 하나뿐이다. Left == Right ? true : false
- 연산자 오버로딩(연산자 겹지정)
클래스의 함수를 만들 때 연산자 형식으로 사용할 수 있게 만드는 함수다.
- operator= (대입 연산자)
전체 객체를 복사하기보다 8바이트만 사용해서 값을 가져올 수 있다.
// 디폴트 대입연산자
void operator=(const FStructValue& _Other)
{
iNumValue = _Other.NumValue;
// 쉘로우 카피라고 부른다.
// 이걸 얕은 복사
// 깊은 복사가 더 좋은 복사 -> 때에 따라 얕은 복사, 깊은 복사 사용법이 다르다
iArrPtr = _Other.ArrPtr;
}
주소 연산자 &는 변수 이름 앞에 사용하여 해당 변수의 메모리 주소 값을 반환한다.
참조 연산자 *는 포인터의 이름이나 주소 앞에 사용하며 해당 주소를 참조하여 주소에 저장되어 있는 값을 반환한다.
포인터, 레퍼런스
변수의 주소값을 저장하기 위한 자료형
포인터는 중간에 변경될 수 있다. 중간에 자신이 가리키는 대상을 바꿀 수 있다., 선언 가능
레퍼런스는 한 번만 초기화되면 가리키는 대상을 변경할 수 없다.
this
this는 자기 자신의 객체를 가르키는 포인터 입니다
this -> 클래스* const
얕은 복사 -> 참조를 복사하는 것을 얕은 복사
깊은 복사 -> 값을 복사하는 것