본문 바로가기

스터디/C++55

[ C++ ] 예외처리 메커니즘( try, catch, throw ) 총 정리 우리에게 익숙한 예외처리는 if문을 이용한 예외처리이다. 하지만 if문을 보고 예외처리를 위한 코드인지 프로그램의 흐름을 구성하는 코드인지 쉽게 구분하지 못해서 가독성이 떨어진다. 하지만 C++의 예외처리 메커니즘을 이용하면 가독성을 높일 수 있다. C++은 구조적으로 예외를 처리할 수 있는 메커니즘을 제공한다. 가독성과 유지보수성을 높일 수 있을 뿐만 아니라, 예외의 처리를 프로그램의 일반적인 흐름에서 독립시키는 것이 가능하다. try try { // 예외발생 예상지역 } try 블록은 예외 발생에 대한 검사의 범위를 지정할 때 사용된다. 즉, try 블록 내에서 예외가 발생하면, C++의 예외처리 메커니즘에 의해서 처리가 된다. catch catch(처리할 예외의 종류 명시) { // 예외처리 코드의.. 2019. 12. 2.
[ C++ ] template<typename T>과 template<> 언제 template를 선언해야하고 언제 template을 선언해야 할까? 템플릿을 정의할 때는 template 또는 template와 같은 선언을 둬서 템플릿의 일부 또는 전부를 정의하고 있다는 사실을 컴파일러에게 알려야 한다. 그럼 template의 선언이 필요한 경우롸 template의 선언이 필요한 경우를 구분하면 된다. 초반에 템플릿을 공부할 때는 많이 헷갈렸는데 결론은 간단하다. 정의 부분에 T가 존재하면 를 선언하고 T, T1, T2와 같은 문자가 존재하지 않으면 를 선언하면 된다. template class Temp { private: T num; }; //--------------------- template class Temp { private: int num; }; 주의할 점은 부분 .. 2019. 12. 1.
[ C++ ] 함수 템플릿, 클래스 템플릿과 static template void StaticValue() { static T num = 0; num += 1; cout 2019. 12. 1.
[ C++ ] 템플릿 매개변수와 디폴트 값(default value) 템플릿을 정의할 때 결정되지 않은 자료형을 T, T1, T2와 같은 문자로 표기하는데 이런 문자를 템플릿 매개변수라고 한다. 그래서 다음과 같은 형태로 객체 생성이 가능하다. 또한 디폴트 값도 지정이 가능합니다. 자료형도 디폴트 값을 정해줄 수 있다. 2019. 12. 1.