Programming Language/C++(5)
-
[C++] 쓰레드 (thread)
프로세스 (Process) 프로세스란 운영체제에서 실행되는 프로그램의 최소 단위로서, 보통 하나의 프로그램을 가리킨다. 프로세스는 운영체제로부터 자원을 할당받아 실행되며, 프로그램의 코드와 데이터, 메모리 공간, 파일 디스크립터 등을 포함한다. 각 프로세스는 독립적인 실행 환경을 가지며, 서로 메모리를 공유하지 않는다. 프로세스가 실행되면 CPU의 코어에서 프로그램의 명령어를 실행하게 되는데, 이때 여러 프로세스가 동시에 실행되는 것처럼 보이지만, 실제로는 각 프로세스가 작은 단위로 번갈아가며 실행되는 것이다. 이렇게 프로세스 간에 스위칭되는 과정을 컨텍스트 스위칭이라고 하며, 이를 운영체제의 스케쥴러가 관리한다. 쓰레드 (Thread) 또한, 프로세스 내에서 실행되는 작은 실행 단위를 쓰레드라고 한다...
2023.08.13 -
[C++] 객체, 함수 오버로딩
객체 객체 (Object) 객체는 데이터와 해당 데이터를 처리하는 함수(메서드)를 하나로 묶은 개념이다. 객체 지향 프로그래밍에서 프로그램의 구성 요소로 객체를 사용하여 현실 세계의 개념을 모델링하고 문제를 해결한다. 각 객체는 특정한 역할과 책임을 가지며, 객체 간의 상호작용을 통해 프로그램이 동작한다. 객체는 속성(멤버 변수)과 동작(메서드)으로 이루어진다. 예를 들어, 자동차 객체는 속성으로 브랜드, 모델, 색상 등을 가지며, 동작으로 주행, 정지, 가속 등을 수행할 수 있다. 추상화 추상화 (Abstraction) 추상화는 복잡한 현실 세계를 단순화하여 중요한 특징과 기능을 강조하는 과정이다. 객체 지향 프로그래밍에서 추상화는 객체의 공통된 특징을 추출하여 클래스로 표현하는 과정을 말한다. 즉, ..
2023.08.13 -
[C++] 참조자
참조자 C++의 참조자(Reference)는 기존 변수에 대한 별칭(alias)를 만들어내는 개념이다. 참조자는 포인터와 다르게 반드시 초기화되어야 하며, 한 번 초기화되면 다른 변수를 참조하는 데 계속 사용된다. 참조자를 사용하면 변수에 대한 별칭을 만들어 원래 변수를 직접 조작할 수 있다. 참조자의 주요 특징은 다음과 같다 초기화 필요: 참조자는 반드시 선언과 동시에 초기화되어야 한다. 참조자를 선언하면서 어떤 변수를 참조할지 명시적으로 지정해야 한다. 별칭: 참조자는 변수에 대한 별칭이기 때문에, 변수와 참조자는 메모리상 같은 위치를 가리키며 같은 데이터를 가리킨다. 포인터와 유사: 참조자는 포인터와 유사한 개념이지만, 포인터와 달리 널(null)로 초기화되지 않으며, 주소 산술(address ar..
2023.08.13 -
[C++] std, namespcae
std std는 Standard Library(표준 라이브러리)의 네임스페이스(namespace)이다. 표준 라이브러리는 C++ 언어에 내장된 기능과 데이터 구조들의 집합으로, 다양한 작업을 수행하기 위해 필요한 함수, 클래스, 템플릿 등을 포함하고 있다. std 네임스페이스는 표준 라이브러리의 모든 요소들이 그룹화되어 있는 곳이다. namespace 네임스페이스(namespace)는 C++에서 코드를 조직화하고 이름 충돌을 방지하기 위한 기술적인 도구다.이 네임스페이스는 코드 내의 식별자(변수, 함수, 클래스 등)들을 논리적인 그룹으로 분류하여 다른 네임스페이스와 구분되도록 한다. 이를 통해 다양한 라이브러리, 프로젝트 또는 모듈에서 같은 이름을 가진 식별자가 충돌하지 않도록 관리할 수 있다. 예시1 ..
2023.08.12 -
[C++] STL
STL(Standard Template Library)은 C++ 프로그래밍 언어의 표준 라이브러리로, 여러 가지 유용한 데이터 구조와 알고리즘을 제공하여 프로그래밍 작업을 더 효율적으로 수행할 수 있게 해준다. STL은 템플릿을 기반으로 구현되어 있어, 다양한 자료형에 대해 일반화된 코드를 작성할 수 있다. C++ 표준 라이브러리의 일부분이며, STL의 주요 구성 요소는 다음과 같다. 컨테이너 (Containers) STL은 다양한 종류의 컨테이너를 제공한다. 컨테이너는 데이터를 저장하고 관리하는데 사용되며, 여러 가지 유형의 데이터 구조를 지원한다. 주요 컨테이너 종류로는 벡터(Vector), 덱(Deque), 리스트(List), 맵(Map), 세트(Set) 등이 있다. 반복자 (Iterators) 반..
2023.08.11