2026/04/01 5

04 - 1 C++ 보충 2-8챕터

// 챕터 8-1 : vector // Standard Template Library(STL) == '컨테이너' 라고도 불린다.// 메모리 자동 관리가 제공되는 자료구조 라이브러리// 템플릿 프로그래밍 기반으로, 다양한 자료형의 데이터들을 저장 할 수 있음// TL 자료구조에는 벡터(Vector) / 맵(Map) / 셋(Set) / 스택(Stack) / 큐(Queue) / 리스트(List) 등이 있음// 실질적으로 벡터(Vector)와 맵(Map)을 가장 많이 쓰며 가끔가다가 셋(Set)을 쓰는 정도 밖에 안된다.// 회사에서 자신만의 컨테이너를 만들어 STL을 대체하기도 한다. class나 구조체와 비슷한 개념...?// 하지만 STL을 기반으로 하기에 세부적인 부분을 제외하면 STL과 공용되는 부분들..

카테고리 없음 2026.04.01

04 - 1 C++ 보충 2-7챕터

// Main.cpp// 챕터 7-1 : 템플릿 // 1 : 25 : 00// int Add(int InA, int InB)//{// return InA + InB;//}// double Add(double InA, double InB)//{// return InA + InB;//}// float Add(float InA, float InB)//{// return InA + InB;//}// 이런 함수가 반복된다면 피로가 누적되며 코드가 길어진다.// 이를 방지하기 위해 오버로딩이 있지만 모든 걸 대체할 순 없다.// 때문에 템플릿은 반환자료형 함수명(매개변수 자료형 매개변수명) 에서 반환자료형과 매개변수 자료형의 범용성을 극대화한 거다.#include template // 템플릿을 사용하는데 필요한 공..

카테고리 없음 2026.04.01

04 - 1 C++ 보충 2-6챕터

// Main.cpp// 챕터 6-1 : std::string // std::string// 필요에 따라 길이가 변할 수 있다.// 문자열을 수정할 수 있는 여러 API도 제공한다.#include #include int main(void){ std::string FirstName; std::string LastName; std::string FullName; /* in C. char FirstName[20]; char LastName[20]; char FullName[20]; */ // 대입 연산과 이어붙이기 연산이 가능합니다. std::cout > FirstName; FullName = FirstName; // FirstName의 값을 FullName에 대입시킨다. std::cout > LastName..

카테고리 없음 2026.04.01

04 - 1 C++ 보충 2-4챕터

챕터 4-1 : 상속과 다형성 몰아보기 // 상속의 필요성// 코드 재사용성 : 똑같은 멤버 변수와 똑같은 멤버 함수들을 가진 두 클래스가 있다면 해당 멤버 변수와 멤버 함수를 부모 클래스로 묶어버릴 수 있다// 확장성 : 공통 부분은 부모 클래스에 두고, 자식 클래스만의 멤버 함수와 멤버 변수들을 가지면서 자식 클래스의 기능을 좀 더 확장 할 수 있음// 유지보수에 유리함 : 공통 부분을 부모 클래스에 묶어두면, 부모 클래스 한 곳만 수정하면 많은 자식 클래스의 부분에도 자동으로 적용됨// 생성자의 경우 부모 클래스의 생성자 -> 자식 클래스의 생성자 순으로 생성된다. 탑을 쌓아올리는데 아랫단부터 쌓아올리는 것// 소멸자의 경우 자식 클래스의 소멸자 -> 부모 클래스의 소멸자 순으로 생성된다. 탑을 철..

카테고리 없음 2026.04.01

03 - 30 C++ 보충 2-3챕터

// 함수를 비슷하게 다시 작성하는 경우 3 가지.// 함수 중복 정의(컴파일 에러)// 같은 반환 자료형, 같은 이름, 같은 매개변수 목록으로 함수를 다시 정의하는 경우.// 함수 오버라이딩// 같은 반환 자료형, 같은 이름, 같은 매개변수 목록으로// 부모 클래스의 멤버 함수를 다시 정의하는 경우.// 함수 오버로딩// 같은 이름, 다른 매개변수 목록으로 함수를 다시 정의하는 경우.// 반환 자료형은 오버로딩의 판단 기준이 아님.// 오버로딩 : 같은 이름의 함수를 매개변수 목록만 달리해서 재정의 하는 것.int Add(int X, int Y);// 위와 같이 Add() 함수가 정의되어 있다고 해봅시다.// 어느 날, float 자료형의 값들 간의 덧셈 함수를 구현해야 했습니다.// "Add"라는 이..

카테고리 없음 2026.04.01