♣ C++(21)
-
[C++] STL 개념 쉽게 이해하기
STL 개념을 명확하게 이해하고 가봅시다. 자세한 예시보단 큰 틀을 파악하는 것을 우선으로 하는 포스팅입니다. 목차 📃 STL 개념 📃 STL 컨테이너 📃 STL 반복자 📃 STL 알고리즘 STL 개념 📌 개념 STL(Standard Template Library). STL은 데이터 저장, 접근, 알고리즘 실행을 쉽고 빠르게 하는 하나의 틀입니다. 비슷한 데이터를 한데 묶을 수 있게 하며(데이터 추상화), 그 데이터를 대상으로 특정 알고리즘을 언제 어디서든 계속 수행할 수 있도록(코드 재사용) 합니다. 📌 일반화 프로그래밍 C++가 가지는 주요 특징 중 하나가 일반화 프로그래밍입니다. 데이터를 중심으로 돌아가는 객체 프로그래밍과 달리 일반화 프로그래밍은 알고리즘을 중심으로 돌아갑니다. 어떤 데이터가 오든..
2022.07.20 -
[C++] 연산자를 커스텀해보자(operator overloading)
이번 포스팅에선 연산자 오버로딩에 대해 알아보겠습니다. 연산자: 말그대로 더하기, 빼기, 곱하기 등의 연산을 하는 실행 코드. 오버로딩: 같은 이름을 쓰지만 매개 변수에 따라 다른 실행을 할 수 있게 하는 규칙. 연산자 오버로딩은 즉, 기존의 연산자 실행과 더불어 사용자가 마음대로 커스텀하여 연산자를 사용할 수 있도록 하는 것을 말한다. 개발 환경 : VSCode, Windows 10 Contents 📌 연산자 오버로딩 & 연산자 함수 정의 📌 오버로딩의 제약 사항 기본 개발 세팅은 다음과 같습니다. #include #include #include using namespace std; int main() { return 0; } 📌 연산자 오버로딩 & 연산자 함수 정의 연산자 오버로딩이란? -, *, +..
2022.07.03 -
[C++] 생성자(constructor)와 소멸자(destructor)
이번 포스팅에선 생성자와 소멸자에 대해 알아보겠습니다. 생성자: 클래스 객체를 만들 때 매개 변수를 초기화하는 함수 소멸자: 객체의 수명이 끝나면 정리해주는 멤버 함수 생성자는 클래스의 시작, 소멸자는 클래스의 끝이라고 보면 되겠다. 개발 환경 : VSCode, Windows 10 Contents 📌 생성자 정의 및 선언 📌 디폴트 생성자 📌 복사 생성자 📌 소멸자 기본 개발 세팅은 다음과 같습니다. #include #include #include using namespace std; int main() { return 0; } 📌 생성자 정의 및 선언 앞서 배웠던 클래스는 거의 자신만의 매개 변수를 가졌습니다. 따라서 클래스 객체를 생성할 땐 매개 변수도 무조건 초기화해줘야 합니다. 생성자는 매개 변수..
2022.07.01 -
[C++] 클래스(class) 개념 및 선언 (plus. this 포인터)
이번 포스팅에선 클래스에 대해 알아보겠습니다. 클래스: 특정 객체를 선언하기 위해 변수와 메서드를 묶는 일종의 틀. 즉, 변수 + 메서드의 묶음. 개발 환경 : VSCode, Windows 10 기본 개발 세팅은 다음과 같습니다. #include #include #include using namespace std; int main() { return 0; } 📌 클래스(class) 정의 클래스는 비슷한 성향의 변수와 관련 프로세스를 수행하는 메소드를 정의한 틀입니다. 여러 타입의 데이터와 함수를 저장할 수 있는 구조체의 상위 호환으로 볼 수도 있습니다. 다수의 객체를 생성하는데 쓰이며, 객체 지향 프로그래밍(OOP)에 있어 핵심적인 개념입니다. 당연하게도 OOP의 특성인 (1) 추상화 (2) 캡슐화 (3..
2022.06.30 -
[C++] 네임스페이스(namespace) 개념 및 코드
이번 포스팅에선 네임스페이스에 대해 알아보겠습니다. 네임 스페이스(namespace): 내부 식별자에 사용될 수 있는 유효 범위를 제공하는 선언적 영역 일종의 집단 영역이라고 볼 수 있습니다. 개발 환경 : VSCode, Windows 10 기본 개발 세팅은 다음과 같습니다. #include #include #include using namespace std; int main() { return 0; } 📌 네임스페이스(namespace) 정의 및 선언 네임스페이스는 일종의 영역입니다. "해당 영역에 있는 변수, 함수, 구조체... 등은 네임스페이스를 앞에 명시했을 때만 사용할 수 있어!" 따라서 변수, 함수, 구조체, 클래스 등 네임스페이스에 있는 모든 것들은 네임스페이스로 구분할 수 있습니다. 네임스..
2022.06.28 -
[C++] 자유 변수, 레지스터 변수, 정적 변수 ft. 유효 범위
이번 포스팅에선 유효 범위가 다른 3개의 변수에 대해 알아보겠습니다. 유효 범위(scope): 하나의 변환 단위(file) 내에서 해당 변수가 사용될 수 있는 범위 연결(linkage): 해당 변수를 사용할 수 있는 파일의 접근 가능 여부 * 외부 연결: 여러 변환 단위에서 사용 가능한 것을 말한다. 개발 환경 : VSCode, Windows 10 기본 개발 세팅은 다음과 같습니다. #include #include #include using namespace std; int main() { return 0; } 💥 알고 가야 하는 개념 [개념] 변환 단위란 무엇인가요? [답변] C++에선 한 개의 파일(file)을 말합니다. 📌 C++ 변수의 종류 C++에는 세 종류의 변수가 있습니다. 자동 변수, 레지..
2022.06.27