분류 전체보기(636)
-
C++ 초급 - 10. 예외 처리 (2 - throw 키워드 (예외 발생시키기))
📌 10.2 throw 키워드 (예외 발생시키기)C++에서 throw 키워드는 프로그램 실행 중 특정 조건에서 예외를 발생시키는 역할을 한다.이를 활용하면 예외적인 상황을 감지하고, 해당 오류를 적절하게 처리할 수 있도록 강제할 수 있다.📌 1. throw 키워드의 기본 개념 (throw 예외객체)🔹 (1) throw란?throw를 사용하면 예외 객체를 생성하여 예외를 발생시킬 수 있음.throw가 실행되면 즉시 try-catch 블록으로 이동하여 예외를 처리해야 함.throw된 예외가 catch에서 처리되지 않으면 프로그램이 비정상적으로 종료됨.💡 기본 문법throw 예외객체;💡 예제: 기본 throw 사용법#include int main() { try { std::cout ..
2025.02.22 -
C++ 초급 - 10. 예외 처리 (1 - try-catch 블록 (예외 처리의 기본 구조))
📌 10. 예외 처리C++에서 예외 처리(Exception Handling)는 프로그램 실행 중 발생하는 오류를 안전하게 처리하는 방법이다.이를 통해 예기치 않은 상황에서도 프로그램이 정상적으로 동작할 수 있도록 한다.📌 10.1 try-catch 블록 (예외 처리의 기본 구조)C++에서 예외 처리(Exception Handling)는 프로그램 실행 중 예상치 못한 오류가 발생했을 때, 이를 안전하게 처리하는 방법이다.이를 통해 프로그램이 비정상 종료되지 않도록 하고, 적절한 복구 및 오류 메시지를 제공할 수 있다.C++에서는 try-catch 블록을 사용하여 예외를 감지하고 처리할 수 있다.📌 1. 예외 처리의 기본 개념 (try, catch)🔹 (1) try-catch 블록이란?try 블록: ..
2025.02.22 -
C++ 초급 - 9. 템플릿 기초 (3 - C++17의 template<typename T> auto)
📌 9.3 C++17의 template autoC++17부터 템플릿 함수에서 auto를 반환 타입으로 설정할 수 있어 반환값의 타입을 더욱 유연하게 지정할 수 있다.이를 통해 코드 가독성이 향상되고, 더욱 강력한 타입 추론이 가능해진다.📌 1. template auto의 기본 개념🔹 (1) auto를 사용한 반환 타입 추론C++17 이전에는 템플릿 함수에서 반환 타입을 명확하게 지정해야 했음.C++17부터 auto를 사용하면 반환 타입을 자동으로 추론 가능.💡 기본 문법templateauto 함수이름(T 매개변수) { return 값;}💡 예제: auto를 활용한 반환 타입 자동 추론#include templateauto square(T x) { return x * x; // 컴파일..
2025.02.22 -
C++ 초급 - 9. 템플릿 기초 (2 - 클래스 템플릿 (Class Template))
📌 9.2 클래스 템플릿 (Class Template)C++의 클래스 템플릿(Class Template)은 데이터 타입에 의존하지 않는 범용적인 클래스를 만들 수 있도록 해준다.이를 활용하면 코드 중복을 줄이고, 다양한 타입을 지원하는 재사용 가능한 클래스를 구현할 수 있다.STL(Standard Template Library)의 vector, map, set 등의 컨테이너도 클래스 템플릿을 기반으로 설계되어 있다.📌 1. 클래스 템플릿 기본 개념 (template)🔹 (1) 클래스 템플릿이란?템플릿을 사용하면 데이터 타입에 의존하지 않는 범용적인 클래스를 정의할 수 있음.template 또는 template를 사용하여 선언.클래스 내부에서 T는 사용자가 지정한 타입으로 변경되어 컴파일됨.💡 기본..
2025.02.22 -
C++ 초급 - 9. 템플릿 기초 (1 - 함수 템플릿 (Function Template))
📌 9. 템플릿 기초C++의 템플릿(Template)은 일반화 프로그래밍(Generic Programming)을 가능하게 하며, 데이터 타입에 의존하지 않는 코드를 작성할 수 있도록 해준다.템플릿을 활용하면 재사용성이 높은 코드를 작성할 수 있으며, 컴파일 타임에 타입을 결정하여 최적화된 실행 성능을 제공한다.📌 9.1 함수 템플릿 (Function Template)C++의 함수 템플릿(Function Template)을 사용하면 데이터 타입에 의존하지 않는 함수를 작성할 수 있다.이를 통해 코드 중복을 줄이고, 보다 범용적인 로직을 구현 가능하며, 컴파일 시점에 타입이 결정되어 최적화된 성능을 제공한다.📌 1. 템플릿 함수의 기본 개념 (template)🔹 (1) 함수 템플릿이란?템플릿(Temp..
2025.02.22 -
C++ 초급 - 8. 객체지향 프로그래밍 (6 - explicit 생성자 (C++11))
📌 8.6 explicit 생성자 (C++11)C++에서는 암시적 변환(Implicit Conversion)으로 인해 예기치 않은 객체 변환이 발생할 수 있다.이를 방지하기 위해 explicit 키워드를 생성자 앞에 붙이면, 암시적 변환을 금지하고 명시적 변환만 허용할 수 있다.이러한 기능을 활용하면 코드의 안전성을 높이고, 예측하지 못한 동작을 방지할 수 있다.📌 1. 암시적 변환(Implicit Conversion)의 문제점🔹 (1) 암시적 변환이란?C++에서는 단일 인자를 받는 생성자가 있을 경우, 해당 타입의 값을 자동 변환하여 객체를 생성할 수 있음.즉, 클래스 객체가 명시적으로 생성되지 않아도 암시적으로 변환되어 객체가 만들어지는 문제가 발생할 수 있음.💡 예제: 암시적 변환으로 발생하..
2025.02.22