연산자 함수를 만들 경우 함수의 매개변수를 적어줄때 변수 이름으로 lhs(Left Hand Side) 와 rhs(Right Hand Side) 를 많이 사용한다.
매개변수가 두개일 경우 첫번째 매개변수에 lhs, 두번째 매개변수는 rhs 로 사용하고
매개변수가 하나일 경우 rhs 로 대부분의 개발자들이 많이 쓰고있다.
여기서 궁금한 것 한가지
나라면 매개변수가 하나일땐 lhs 로 사용할것 같다는것이다.
왜냐하면 사람이 글을 쓸때 왼쪽부터 오른쪽으로 쓴다. 코드도 한줄만 보면 왼쪽에서 오른쪽으로 짠다. class CBase 이것만 봐도 시작은 맨 왼쪽의 c 이다.
그렇다면 첫번째 매개변수는 lhs 로 사용 하는게 더 맞는것이 아닐까 ? 왜 대부분의 사람들은 rhs 로 사용을 하고있을까 그 이유가 궁금해졌다.
간단하게 설명을 하면,
int iVal;
iVal = iVal + 10 ; // iVal += 10;
iVal + 10 은
iVal.operator + (10); 이런 형식이 된다.
여기서 lhs 는 iVal 자기 자신이고 rhs는 10이다.
그렇기 때문에 lhs를 따로 쓸필요가 없다는것.
lhs 를 사용하는경우
lhs 를 사용하는 경우는 클래스 외부의 함수로 10 + iVal; 과 같이 했을 경우 (iVal 은 class 로 봐야함)
10.operator+(iVal) 이런건 존재 하지 않기 때문에 10을 계산 가능한 객체로 바꿔줘야 하기때문에
operator +(lsh, rhs) 라는 일반함수를 써야된다.
lhs 와 rhs
연산자 함수를 만들 경우 함수의 매개변수를 적어줄때 변수 이름으로 lhs(Left Hand Side) 와 rhs(Righ...
blog.naver.com
'Master > Master' 카테고리의 다른 글
Quantization (0) | 2021.04.09 |
---|---|
im2col (0) | 2021.04.06 |
ARM Neon ISA (0) | 2021.03.11 |
NCHW, NHWC, CHWN (0) | 2020.11.19 |
Darknet (0) | 2020.10.23 |