2024/04/24 2

C++ 스택 풀기(Stack Unwinding)

1. 스택 풀기의 개념Stack Unwinding은 실행 시간에 함수 호출 스택에서 함수 항목을 제거하는 프로세스다. 로컬 개체는 구성된 역순으로 파괴된다.스택 풀기는 일반적으로 예외 처리와 관련이 있다. C++에서 예외가 발생하면, 함수 호출 스택에서 예외 처리기를 선형으로 검색하고, 예외 처리기가 있는 함수 이전의 모든 항목을 함수 호출 스택에서 제거한다. 따라서 예외 처리는 동일한 함수(예외가 던져지는 곳)에서 예외를 처리하지 않으면, 스택 풀기를 포함하는 것이다. 기본적으로 스택 풀기는 런타임에 구성된 모든 자동 개체에 대해 (예외가 던져질 때마다) 파괴자를 호출하는 프로세스다.예시:// CPP Program to demonstrate Stack Unwinding  #include   usin..

C++ 2024.04.24

C++ 클래스를 이용한 예외 처리

이번 글에서 우리는 클래스를 이용한 예외 처리를 알아보도록 한다. Problem Statement① 데이터 멤버 a와 b를 갖는 클래스 Number를 만든다.② 반복 함수를 작성하여 두 숫자의 GCD(Greatest Common Divisor)를 찾는다.③ 주어진 수가 소수인지 아닌지 확인하기 위해 반복 함수를 작성한다. 만약 참이라고 판명나면, 클래스 MyPrimeException에 예외를 부여한다. ④ 자신만의 MyPrimeException 클래스를 정의한다. Solution① 두 개의 데이터 멤버가 있는 Number라는 이름의 클래스를 a와 b로 정의한다. ② 두 개의 멤버 함수를 다음과 같이 정의한다.   ⑴ int gcd(): 두 숫자의 HCF(Highest Common Factor)..

C++ 2024.04.24
728x90