1.예외 처리 (Exception Handling)로그램 실행 중 발생할 수 있는 오류를 효과적으로 관리하는 기법입니다.throw: 예외를 발생시킵니다.try: 예외가 발생할 수 있는 코드를 감쌉니다.catch: 발생한 예외를 처리합니다.#include #include // std::runtime_errorvoid mightGoWrong() { bool errorOccurred = true; // 오류 발생 조건 (예제용) if (errorOccurred) { throw std::runtime_error("Something went wrong!"); }}int main() { try { mightGoWrong(); } catch (const std::..
Language
1. 컨테이너 (Containers)순차 컨테이너 (Sequential Containers)vector: 동적 배열. 빠른 임의 접근과 효율적인 끝 삽입/삭제.deque: 이중 큐. 양쪽 끝에서 빠른 삽입/삭제.list: 이중 연결 리스트. 삽입/삭제에 효율적이나 임의 접근이 느림.forward_list: 단일 연결 리스트. list보다 메모리 사용이 적음.연관 컨테이너 (Associative Containers)set: 중복 없는 정렬된 집합.map: 키와 값의 쌍을 저장하는 정렬된 연관 배열.multiset: 중복을 허용하는 정렬된 집합.multimap: 중복을 허용하는 연관 배열.해시 기반 컨테이너 (Unordered Associative Containers)unordered_set: 해시 기반의 ..
0.&other복사 생성자와 대입 연산자에서 사용되는 매개변수로, 복사할 원본 객체의 참조를 가리킵니다.이는 복사 생성자와 대입 연산자가 복사할 때 원본 객체를 직접 수정하지 않도록 보장합니다. 1.복사 생성자 (Copy Constructor)객체를 새로 생성할 때 기존 객체로부터 복사하여 초기화하는 데 사용됩니다. 객체가 복사될 때 호출됩니다.#include class Example {private: int* data;public: // 생성자 Example(int value) : data(new int(value)) { std::cout 2. 대입 연산자 (Assignment Operator)이미 존재하는 객체에 다른 객체의 값을 대입할 때 사용됩니다.#includ..
1.연산자 오버로딩사용자 정의 타입에 대해 기본 연산자를 재정의하여 객체에 대해 자연스럽게 사용할 수 있도록 하는 기능입니다. 2. 예시) 덧셈 연산자 오버로딩클래스에 대한 덧셈 연산자를 오버로딩하여 두 객체를 더할 수 있게 합니다.#include class Complex {public: double real, imag; Complex(double r, double i) : real(r), imag(i) {} // 덧셈 연산자 오버로딩 (멤버 함수) Complex operator+(const Complex& other) const { return Complex(real + other.real, imag + other.imag); } void print() ..
1.상속객체 지향 프로그래밍의 핵심 개념 중 하나로, 기존의 클래스를 기반으로 새로운 클래스를 정의할 수 있게 해줍니다. 상속을 통해 기존 클래스의 속성과 메서드를 재사용하고, 새로운 기능을 추가하거나 기존 기능을 수정할 수 있습니다.class BaseClass { // 기본 클래스의 멤버};class DerivedClass : public BaseClass { // 파생 클래스의 멤버}; 2.상속의 종류2-1.공개 상속기본 클래스의 공개(public) 멤버와 보호(protected) 멤버를 그대로 상속받습니다.외부에서는 파생 클래스를 기본 클래스의 대체로 사용할 수 있습니다.class DerivedClass : public BaseClass { // 파생 클래스의 멤버}; 2-..
1. 클래스데이터와 그 데이터를 조작하는 함수를 묶어서 정의하는 사용자 정의 자료형입니다.class ClassName {private: // 비공개 멤버 변수 DataType memberVariable;public: // 생성자 ClassName(DataType value) : memberVariable(value) {} // 공개 멤버 함수 void memberFunction() { // 함수 구현 } // getter DataType getMemberVariable() const { return memberVariable; } // setter void setMemberVariable(DataTyp..
1.템플릿함수나 클래스에서 데이터 타입을 일반화하여 코드 재사용성을 높이는 기능입니다. 2.함수 템플릿다양한 데이터 타입에 대해 동일한 함수를 정의할 수 있습니다.template T functionName(T parameter) { // 함수 구현}#include // 함수 템플릿 정의template T max(T a, T b) { return (a > b) ? a : b;}int main() { std::cout 3.클래스 템플릿다양한 데이터 타입의 객체를 만들 수 있는 클래스의 일반적인 정의를 제공합니다.template class ClassName {private: T data;public: ClassName(T value) : data(value) {} T ..
1.Namespace네임스페이스는 코드의 다양한 부분에서 이름의 충돌을 방지하고, 코드의 가독성을 높이며, 논리적으로 관련된 코드 그룹을 묶어 관리할 수 있게 합니다.namespace 키워드를 사용하여 정의합니다.#include // 네임스페이스 정의namespace MyNamespace { int value = 42; void print() { std::cout 2.using 선언네임스페이스 내부의 요소를 직접 사용할 수 있도록 using 선언을 사용할 수 있습니다.#include namespace MyNamespace { int value = 42; void print() { std::cout 3.using 지시문using namespace ..