Separate Compilation and Namespaces, Templates
Separate Compilation C++에서 Separate Compilation은 프로그램을 여러 개의 소스 파일로 나누어 컴파일하는 방법. 컴파일된 파일들은 링커를 통해 하나의 실행 파일로 결합됨. 이 방법은 코드의 모듈화와 재사용성을 높이고, 대규모 프로젝트에서 컴파일 시간을 단축시킴. 클래스를 정의할때는 정의 부분과 구현 부분을 분리하여 작...
Separate Compilation C++에서 Separate Compilation은 프로그램을 여러 개의 소스 파일로 나누어 컴파일하는 방법. 컴파일된 파일들은 링커를 통해 하나의 실행 파일로 결합됨. 이 방법은 코드의 모듈화와 재사용성을 높이고, 대규모 프로젝트에서 컴파일 시간을 단축시킴. 클래스를 정의할때는 정의 부분과 구현 부분을 분리하여 작...
Virtual Function(Polymorphism) C++에서 가상 함수(Virtual Function) 는 다형성(Polymorphism) 을 구현하는 데 사용되는 특별한 멤버 함수로, 상속 관계에 있는 클래스에서 오버라이딩할 수 있는 함수를 의미함. 가상 함수는 런타임에 동적으로 바인딩되어, 객체의 실제 타입에 따라 호출되는 함수가 결정됨. ...
Inheritance 상속(Inheritance)은 객체 지향 프로그래밍의 핵심 개념 중 하나로, 기존 클래스(부모 클래스)의 속성과 메서드를 새로운 클래스(자식 클래스)가 물려받는 기능을 의미함. 이를 통해 코드의 재사용성을 높이고, 계층 구조를 형성할 수 있음. 기본 클래스(Base Class)로부터 파생된 클래스(Derived Class)는 기본...
Pointer C++에서 포인터(Pointer) 는 메모리 주소를 저장하는 변수로, 다른 변수의 메모리 주소를 가리킬 수 있음. 변수의 간접 참조에 사용됨. 선언: int* ptr; 주의: int* ptr;와 int *ptr;는 동일. int* p1, p2;는 p1은 포인터...
Operator Overloading 연산자(+, -, *, / 등)는 함수처럼 동작하며, 다만 다른 문법으로 호출되는 함수일뿐임.(예: a + b는 operator+(a, b)와 동일함) 새로 정의한 Class에 대해서도 원하는대로 연산자를 사용할 수 있도록 하는 기능을 연산자 오버로딩(Operator Overloading) 이라고 함. 비멤버 함...
Constructors C++에서 생성자(Constructor)는 클래스 객체 초기화를 위해 사용되는 특별한 멤버함수. 멤버 변수 일부 또는 전체를 초기화하는 데 사용되며, 객체가 생성될 때 자동으로 호출됨. 생성자는 클래스 이름과 동일한 이름을 가지며, 반환 타입이 없음. 클래스 이름과 동일한 이름을 가져아햐고, 반드시 public 영역에 선언되어야...
Structure Structure는 C++에서 데이터를 그룹화하는 데 사용되는 사용자 정의 데이터 타입. Array와 유사하지만, Structure는 서로 다른 데이터 타입을 포함할 수 있음. Structure는 struct 키워드를 사용하여 정의되며 이 구조체에 저장된 데이터는 멤버 변수, 함수는 멤버 함수로 불림. Structure 정의 ...
그래프($G = (V,E)$)는 정점(vertices, $V$)과 정점 사이의 연결인 간선(edges, $E$)으로 구성된 자료구조로, 다양한 문제를 모델링하는 데 사용됨. Undirected Graph: 간선이 방향을 가지지 않음 Directed Graph: 간선이 방향을 가짐 Weighted Graph: 간선에 가중치가 있음 Unw...
Searching Ordered Arrays 정렬되지 않은 배열에서는 특정 원소를 찾기 위해 배열의 모든 원소를 비교하는 선형 탐색(Linear Search)이 최선. 하지만 정렬된 배열에서는 다양한 탐색 알고리즘을 사용할 수 있다. Binary Search Binary Search는 배열을 반으로 나누어 원하는 원소가 있는지 확인하는 방식으로 작동...
Sorting 데이터를 순서대로 정렬하는 작업으로, 그 비용은 비교 횟수(Number of Comparisons)와 교환 횟수(Number of Swaps)로 측정된다. Exchange Sorting Exchange Sort은 원소 쌍의 위치를 교환(swap)하여 배열을 정렬하는 방식의 알고리즘이다. Exchange Sort은 inversio...