항목 26 : 오버로딩된 연산자의 본래 의미를 유지하라. ( Preserve natural semantics for overloaded operators. )
{ 왜냐하면, 헷갈리기 때문이다. 그것도 매우 헷갈리기 때문이다. 지금까지의 짧은 코딩 경력으로도 헷갈리는 코드는 좋지 못한 코드라는 것을 알 수 있었다. 연산자의 경우 "기호" 적인 부분을 재정의 하는 것이기 때문에, "기호"만으로 그 함수를 파악해야만 한다. 그런데 그 "기호"처럼 행동하지 않는다면, 어떻게 되겠는가? 다시 다 뜯어 봐야 할 것이다. 이것은 시간 낭비이다. 자신만 볼 코드이기 때문에 상관없다고 하자. 정말 자기 자신은 그 코드를 보고도 헷갈리지 않을 자신이 있을까? 자신이 만큼 코드라도 일주일간만 안보면, 새롭게 느껴지는게 이 쪽 세계인데, 정말 그럴지 의구심이 든다. "-" 연산자가 "-"의 의미를 지니지 않고, "+" 의 의미를 지닌다고 생각해 보면 쉽게 이해가 간다. 어쩔 수 없..
책 정리/C++ Coding Standards : C++ 코딩의 정석
2009. 2. 24. 12:43
최근댓글