- [ 공부/C++ ][C++] STL - std::string2024-10-02 23:51:36STL 이란?standard template library의 줄임말. 뜻은 "표준 지시의 원형"프로그래밍 언어에서 대체로 필요한 기능이 무엇인지 합의해둔 구성을 말한다. 자유 문자열, 자료 구조(크기를 바꿀 수 있는 배열 비슷한 것들, 데이터 집합)수학 기능, OS 기능 끌어다 쓰기, 프로그래밍 자체의 확장(변형) 등을 포함 => 예를 들어 문자열을 [9]로 만들었는데 더 필요한 경우 확장이 안됐었다. 그리고 9보다 작게 쓸 경우 줄이는 것도 불가능. 이걸 해결해주는 게 STL 이다. std::string 이란?std::string 은 C++에서 문자열을 쉽게 다루기 위한 도구이다.예를 들어, 문자를 저장하고 수정하고, 출력하는 걸 아주 간단하게 만들어주는 클래스라고 생각하면 된..
- [ 공부/C++ ][C++] 네임스페이스(Namespace)2024-09-30 22:04:13네임스페이스 (namespace) 란?네임스페이스는 이름이 같은 함수나 변수를 구분하는 데 사용되는 중요한 개념이다. 네임스페이스를 쓰지 않으면, 여러 헤더 파일이나 라이브러리에서 이름이 같은 함수나 변수들이 충돌할 수 있다. C++에는 이미 엄청 많은 함수들이 만들어져 있어서, 우리가 새로운 프로그램을 만들 때 이름이 겹칠 수 있는 것이다. 마치 학교에서 여러 명의 같은 이름을 가진 친구들이 있으면 헷갈리니까 성까지 같이 부르는 것과 같다. 네임스페이스는 "여기는 이 사람만 쓰는 공간이야"라고 구분해주는 역할을 한다. 잘못된 예시 : Error1.h 파일 = 철수 #pragma once// 오류 헤더 만들어보기int sutza(int x, int y){ return x + y;} ..
- [ 공부/C++ ][C++] 문자열 처리 함수2024-09-30 20:45:501. 문자열 복붙하기 : strcpy_s이 함수는 문자열을 안전하게 복사하는 기능이다. 'strcpy'의 's'는 'safe'(안전한)을 뜻한다. 1. 복사의 개념: 선생님(strcpy_s)이 한 학생(원본 문자열)의 그림(문자들)을 다른 학생의 종이(목적지 문자열)에 똑같이 그리려고 한다. 2. 안전성: 하지만 선생님은 조심스럽다. 그림이 종이를 넘어가지 않게 주의해야 한다. 만약 종이가 작다면, 선생님은 그림 그리기를 멈추고 "이 종이 는 너무 작아!"라고 말할 것이다. strcpy_s 를 쓰는 이유 만약 **복사될 배열(할당된 공간)**이 **복사하려는 문자열(원본)** 보다 작다..
- [ 공부/C++ ][C++] 상속과 구성의 차이2024-09-19 19:22:43구성 (Composition)2024.09.18 - [공부/C++] - [C++] 구성 (Compotision) [C++] 구성 (Compotision)구성(Composition)구성은 한 클래스가 다른 클래스를 자신의 멤버로 포함하는 방식 이다. 이를 통해 클래스는 다른 클래스의 객체를 소유하고, 그 객체의 기능을 사용한다.구성 관계는 "has-a"관계로lee-tistory0525408akfl.tistory.com 상속 (Inheristance)2024.09.10 - [공부/C++] - [C++] 상속 (inheristance) [C++] 상속 (inheristance)상속 (inheristance) 은 무엇인가?상속은 프로그래밍에서 한 클래스가 다른 클래스의 특성과 기능을 물려받는 것을 말..
- [ 공부/C++ ][C++] 구성 (Compotision) 집합 (Aggregation) 차이2024-09-19 18:48:43구성 (Composition)2024.09.18 - [공부/C++] - [C++] 구성 (Compotision) [C++] 구성 (Compotision)구성(Composition)구성은 한 클래스가 다른 클래스를 자신의 멤버로 포함하는 방식 이다. 이를 통해 클래스는 다른 클래스의 객체를 소유하고, 그 객체의 기능을 사용한다.구성 관계는 "has-a"관계로lee-tistory0525408akfl.tistory.com 집합 (Aggregation)2024.09.18 - [공부/C++] - [C++] 집합 (Aggregation) [C++] 집합 (Aggregation)집합 (Aggregation) 이란?집합은 객체들이 독립적으로 존재하면서 서로 연결되어 있을 때 사용하는 개념이다. 즉, 하나의 객..
- [ 공부/C++ ][C++] 집합 (Aggregation)2024-09-18 23:09:07집합 (Aggregation) 이란?집합은 객체들이 독립적으로 존재하면서 서로 연결되어 있을 때 사용하는 개념이다. 즉, 하나의 객체가 다른 객체를 소유하진 않지만 참조해서 사용하는 관계를 말한다. 이걸 통해 한 객체가 사라져도 다른 객체는 계속 남아있을 수 있다. 1. TV와 리모컨:TV(파란색 상자)는 리모컨(빨간색 상자)을 "사용"한다. (점선으로 연결됨)이것이 바로 "약한 has-a" 관계다. 2. 관계의 특징:TV는 리모컨을 "가지고" 있지만, 완전히 소유하지 않는다.리모컨은 TV와 별개로 존재할 수 있다. 3. 실생활 예시:TV를 샀을 때 리모컨이 함께 왔다. (TV가 리모컨을 "가짐")하지만 TV가 고장나서 버려도, 리모컨은 그대로 남아 있을 수 있다.그 리모컨으로 다른 TV를..
- [ 공부/C++ ][C++] 구성 (Compotision)2024-09-18 21:48:39구성(Composition)구성은 한 클래스가 다른 클래스를 자신의 멤버로 포함하는 방식 이다. 이를 통해 클래스는 다른 클래스의 객체를 소유하고, 그 객체의 기능을 사용한다.구성 관계는 "has-a"관계로 설명된다. 예를 들어, Car 클래스는 Engine을 가진다("has-a")고 할 수 있다. 1. 자동차와 엔진 ⦁ **자동차(Car)**는 **엔진(Engine)**을 "가지고" 있다. ⦁ Car 클래스는 Engine 클래스를 멤버 변수로 포함한다. Engine.h 파일 #pragma once#include class Engine{public: void Start();}; Engine.cpp 파일 #include "Engine.h"void Engine::Start()..
- [ 공부/C++ ][C++] 함수 오버라이딩 (Overriding)2024-09-17 20:59:31함수 오버라이딩 (Overriding) 이란?함수 오버라이딩은 부모 클래스에 정의된 메서드를 자식 클래스에서 재정의 하는 것을 의미한다. 자식 클래스에서 부모 클래스의 메서드와 같은 이름, 반환 타입, 매개변수를 가진 메서드를 정의하면, 자식 클래스의 인스턴스에서 호출할 때 부모 클래스의 메서드가 아닌 자식 클래스의 메서드가 실행된다. 함수 오버라이딩은 마치 "슈퍼 히어로의 능력 업그레이드" 와 비슷하다. Superman.h 파일 #pragma onceclass Superman{public: Superman(); // 생성자 생성 // 출력 함수 void ShowMe(); void fly(); // 날기 void action(); // 액션}; Superman.cpp 파일 #inc..
- [ 공부/C++ ][C++] 상속 (inheristance)2024-09-10 23:56:43상속 (inheristance) 은 무엇인가?상속은 프로그래밍에서 한 클래스가 다른 클래스의 특성과 기능을 물려받는 것을 말한다. 쉽게 말해서, 상속은 부모-자식 관계와 비슷하다. 부모 클래스: 부모는 자신의 특징을 자식에게 물려줄 수 있다. 예를 들어 부모가 특정한 재능이나 물건(자동차나 집)을 가지고 있다면, 자식도 그 재능이나 물건을 사용할 수 있게 된다. 자식 클래스: 자식은 부모가 물려준 재능이나 물건을 그대로 사용할 수 있다. 하지만 자신만의 재능이나 물건을 추가할 수도 있다. 이런 상속의 개념을 코드에 적용하면, 부모 클래스가 가지고 있는 함수나 변수를 자식 클래스도 사용할 수 있는 것이다. 상속(Inheritance)을 통한 객체 계층 표현클래스로 표현할 수..