나는 이것과 비슷한 질문을 보았지만 템플릿을 사용하는 것을 찾을 수 없다는 사실 때문에 도움이되지 않았습니다. 숙제를 위해 모든 유형의 변수와 함께 사용할 수있는 스택을 코딩해야하므로 템플릿을 사용하기로 결정했습니다. 이것은 내가 변수를 초기화하는 것을 막고, 내 코드는 함수 pop ()에 대한 경고를 제공합니다. 누구든지 그러한 경고를 제거하는 방법에 대한 제안을 할 수 있습니까?
내 함수 pop () :
template<typename T>
T stack<T>::pop(){
T result;
if(!empty()){
result = tos->data;
Node<T> *tmp = tos;
tos = tos->next;
delete tmp;
}else{
std::cerr<<"ERROR empty stack"<<std::endl;
}
return result;
}
대신 단순히 인쇄 std::cerr
하여 pop()
그것이 다룰 수없는 무언가를 명중하는 경우 예외를 발생한다 방법. 자동으로 실패하고 초기화되지 않은 개체 를 반환하면 나중에 문제 가 발생합니다.
다음과 같은 예외를 던질 수 있습니다.
//...
else {
throw std::runtime_error("ERROR empty stack");
}
//...
그런 다음 if 문의 분기 result
내 에서만 선언 true
하면됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다