프로그래밍 언어/C & C++ 정리

연산자 오버로딩을 남용하는 것

뽀또치즈맛 2024. 11. 10. 17:25

남용하여 나만의 의미로 만들면
협업의 효율성이 떨어질 수 있다.


자유도가 높은 언어일 수록
애매하게 쓰지 않도록 함수로 만드는 것이 좋다. (ex 자바처럼)


가령 다음과 같이

벡터 *= 벡터 의 코드와 같은 경우에

연산자 오버로딩을 사용했다면

 

해당 경우가 벡터 곱샘이 외적인지 내적인지 모호성을 띄게 된다.


이를 함수로 명확히 이름을 통해 알 수 있도록 코드를 제작하여,

dotproduct 인지 crossproduct 인지 명확한 이름을 사용하여 함수를 짠다면
가독성도 높고, 해당 코드에 대한 의미가 명확해진다.

대입 연산자와 복사 생성자의 유사성
복사 생성자와 대입 연산자는 거의 비슷하지만
차이점은
대입 연산자는 메모리를 해제해 줄 필요가 있을 수 있으며,
대입 연산자는 이미 만들어 진 객체를 쓰고
복사 생성자는 방금 생성된 객체에 값을 넣어주는 것이다.


복사 생성자가 만들어지면
컴파일러가 암시적으로 대입 연산자를 자동으로 만들어준다.

따라서
복사 생성자를 구현했다면
대입 연산자도 깊은 복사로 구현해야 할 것이다.



'프로그래밍 언어 > C & C++ 정리' 카테고리의 다른 글

범용 데이터 구조  (0) 2024.11.12
OOP - 상속  (0) 2024.11.11
연산자 오버로딩과 const  (0) 2024.11.06
C++ 함수 오버로딩과 C언어의 _Generic  (4) 2024.11.03
복사 생성자  (4) 2024.11.02