인프런 커뮤니티 질문&답변
bool IsDead 반환값
작성
·
479
0
안녕하세요! 선생님이 작성하신 bool IsDead 함수에서 반환값 부분이 이해가 잘 안 돼서 질문드립니다
먼저 저는 아래와 같이 코드를 짰습니다
bool IsDead()
{
if (m_hp <= 0)
return true;
return false;
}
선생님께서는
bool IsDead() { return _hp <= 0; }
와 같이 return true, false 상황을 나누지 않고 바로 원하는 조건을 return하셨던데, 이 부분이 문법이 바로 와닿지가 않아서요.
제가 작성한 코드를 간략화하면 선생님 코드와 결국 같은 의미인걸로 이해하긴 했는데 맞나요?? bool 함수를 쓸 때 참/거짓 상황을 나눌 필요없이 true인 상황을 바로 return하면 되는건가요?
그리고 한 가지 더 궁금한게 있습니다
if (_monster->IsDead() == true)
이 코드와
if (_monster->IsDead())
이 코드는 완전히 똑같은건가요?
퀴즈
C++ 프로젝트에서 코드의 인터페이스(선언)와 구현을 각각 .h 파일과 .cpp 파일로 분리하는 주된 이유는 무엇일까요?
메모리 사용량을 자동으로 최적화하기 위해서
컴파일러의 종류에 상관없이 코드를 실행하기 위해서
선언과 구현을 분리하여 코드 구조를 명확히 하고 컴파일 의존성을 관리하기 위해서
파일 시스템에서 자동으로 백업을 생성하기 위해서
답변 2
1
Rookiss
지식공유자
bool test = (m_hp <= 0);
이렇게 실험 해보면 <= 결과에 따라 true 혹은 false가 저장되는 것을 확인할 수 있습니다.
bool IsDead()
{
if (m_hp <= 0)
return true;
return false;
}
bool IsDead() { return _hp <= 0; }
성능적으로 보면, 두 함수 차이가 전혀 없습니다.
다만 가독성과 간지(?) 측면에서 짧게 읽히는 후자로 만드는 경우가 더 많습니다.
if (_monster->IsDead() == false)
다만 가독성과 간지(?) 측면에서 짧게 읽히는 후자로 만드는 경우가 더 많습니다.
if (_monster->IsDead() == true)
if (_monster->IsDead())
두 코드도 완전히 동일합니다.
== true는 대부분의 경우에 생략합니다.
== true는 대부분의 경우에 생략합니다.
if (_monster->IsDead() == false)
if (!_monster->IsDead())
false의 경우 스타일이 조금 갈리는데,
!가 눈이 침침하면 잘 안 보여서 저는 == false를 명시적으로 쓰는 것을 더 선호합니다.
!가 눈이 침침하면 잘 안 보여서 저는 == false를 명시적으로 쓰는 것을 더 선호합니다.
1





이해됐습니다 명쾌한 답변 감사합니다 !!!!