본문 바로가기

Master/Master

lhs, rhs

연산자 함수를 만들 경우 함수의 매개변수를 적어줄때 변수 이름으로 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