pjy101102   5년 전

1>c:\users\pjy10\source\repos\project5\project5\소스.cpp(99): warning C4715: 'Stack::pop': 모든 제어 경로에서 값을 반환하지는 않습니다.

라는 에러 때문에 혹시 


catch (RuntimeException &e) { cout << e.getMessage() << endl; } }

부분에서 return이 없어서 그런가 해서 return 하도록 수정도 해봤는데 그대로네요.,.

도움 주시면 감사하겠습니다.

djm03178   5년 전

새로운 Node가 만들어질 때 prevNode에 대한 초기화를 하지 않고 있습니다. 그 때문에 60번째 줄에서 새로 만들어진 Node의 prevNode는 무슨 값일지 알 수 없습니다. 이것만 초기화해주면 맞습니다.

컴파일 시에 뜨는 워닝은 비록 catch문에 걸리더라도 함수는 리턴을 해야 하는 것이 원칙인데 아무것도 반환하지 않고 있기 때문입니다. 애초에, top과 pop 모두 반환한 값을 사용하는 곳이 없으니 처음부터 void로 선언하고 아무것도 리턴하지 않아도 됩니다. 좀 더 좋은 클래스 디자인이라면, top이나 pop이라는 기능 자체에 '출력한다'는 의미는 없으므로 두 함수는 값만을 리턴하고 출력은 하지 않는 편이 좋아 보입니다.

댓글을 작성하려면 로그인해야 합니다.