전체 글 41

[TIL] 템플릿과 STL 개념 정리 및 Vector Lib 구현해보기

템플릿 (Template)템플릿은 자료형에 관계없이 동작하는 일반화된 함수나 클래스를 작성할 수 있도록 해주는 기능이다.용도:버전을 다른 타입에 따라 복잡한 컨설 필요 없이 하나의 컨설로 차례 사용장점:타입 사용 자유로워지는 코드자료형에 의외된 도메인 함수/클래스에서 복장 사용 없음예제 (직접 구현한 라이브러리 vector의 함수 일부):#include //#include using namespace std;template class SimpleVector {private: T* data; int size; int capacity;public: SimpleVector(T s = 10){ size = 0; capacity = s; data..

[TIL] 상속 익숙해지기 (1)

#include using namespace std;// TODO: Phone 클래스 구현// - displayBrand()와 showFeature() 순수 가상 함수를 포함하도록 구현하세요// - 소멸자를 반드시 virtual로 선언하세요class Phone {public: virtual void displayBrand() = 0; virtual void showFeature() = 0; virtual ~Phone() {};};// Samsung 클래스 작성 (Phone 클래스를 상속받음)class Samsung : public Phone {public: void displayBrand() { cout displayBrand(); phones[i]->sho..

[TIL] C++ 간단한 프로그래밍 구현

#include using namespace std;// 점수를 입력받아 배열에 저장하고 유효한 점수의 합계를 구하는 함수double solution(int scores[], int scoresSize) { int sum = 0; int i = 0; // scoresSize만큼 유효한 점수를 입력받음 while (i > scores[i]; // 입력값이 0 이상 100 이하일 경우만 유효 if (0 (sum) / scoresSize;}int main() { int scores[5]; // 점수 배열 int* p = scores; // 포인터로 전달 int scoresSize = sizeof(scores) / sizeof(scores[0]); ..

C++ 객체지향 문법(8)

C++ 객체지향 문법: 상속, 캡슐화, 다형성1. 캡슐화 (Encapsulation)데이터와 함수를 하나로 묶고, 외부에서 내부 데이터를 직접 접근하지 못하게 막는 방식접근 지정자 private, public, protected로 구분함class BankAccount {private: int balance; // 외부 접근 불가public: void deposit(int amount) { balance += amount; } int getBalance() { return balance; }};캡슐화를 통해 데이터 보호 및 함수 중심의 접근 유도 가능2. 상속 (Inheritance)기존 클래스(부모 클래스)의 속성과 기능을 물려받아 새로운 클래스(자식..

코딩/c++ 2025.06.02

C++ 기본 문법(7)

C++ 기본 문법: 구조체(struct)와 클래스(class)1. 구조체(struct)란?여러 데이터를 하나로 묶는 사용자 정의 자료형임. 기본적으로 모든 멤버는 public으로 설정됨.struct Player { string name; int hp; int mp;};Player p1;p1.name = "Knight";p1.hp = 100;p1.mp = 50;struct는 단순한 데이터 묶음용으로 자주 사용됨기능(함수)도 포함 가능함2. 클래스(class)란?데이터 + 함수를 하나의 단위로 묶는 객체 지향 문법의 핵심. 기본 접근 지정자는 private임.class Dog {private: string name;public: void setName(string s) { ..

코딩/c++ 2025.06.02

C++ 기본 문법(6)

C++ 기본 문법: 동적 메모리 할당 (new / delete)1. 동적 메모리 할당이란?프로그램 실행 중에 필요한 만큼 메모리를 할당하는 방식임.정적 배열은 크기를 미리 정해야 하지만, 동적 할당은 런타임에 결정 가능2. new / delete기본 문법int* p = new int; // int 1개 할당*p = 100;cout new: 메모리 할당 (heap 영역에)delete: 할당한 메모리 해제할당받은 주소는 포인터 변수에 저장해야 함3. 동적 배열1차원 배열 할당int* arr = new int[5]; // int 5개짜리 배열 할당for (int i = 0; i 2차원 배열 할당int** matrix = new int*[3]; // 행 3개for (int i = 0; i 4. 주의사항d..

코딩/c++ 2025.06.02

C++ 기본 문법(5)

C++ 기본 문법: 포인터와 레퍼런스1. 포인터(Pointer)포인터는 변수의 메모리 주소를 저장하는 변수임. * 기호를 사용해 선언하고, & 기호로 주소를 구함.예제int a = 10;int* p = &a; // a의 주소를 포인터에 저장cout 설명int* p: int형 포인터 변수 선언&a: 변수 a의 주소*p: 포인터 p가 가리키는 주소의 값 (역참조)2. 레퍼런스(Reference)레퍼런스는 기존 변수의 또 다른 이름(별명)임. & 기호를 사용해서 선언하지만, 주소가 아니라 "참조" 의미임.예제int a = 10;int& ref = a; // ref는 a의 또 다른 이름ref = 20;cout 설명int& ref = a: a를 참조하는 변수 ref 생성ref를 수정하면 a도 같이 바뀜 (같은..

코딩/c++ 2025.06.02

C++ 기본 문법(4)

C++ 기본 문법: 반복문 & 배열1. 반복문 (Loops)while 문int i = 0;while (i 조건이 참인 동안 계속 실행됨. 조건 먼저 검사do-while 문int i = 0;do { cout 무조건 한 번 실행한 뒤 조건 검사for 문for (int i = 0; i 초기값, 조건, 증감을 한 줄에 선언범위 기반 for 문 (C++11 이상)int arr[] = {1, 2, 3, 4, 5};for (int num : arr) { cout 배열이나 vector 등 반복 가능한 객체에서 사용2. 배열 (Array)배열 선언과 초기화int arr[5]; // 선언만 함int arr2[5] = {1, 2, 3, 4, 5}; // 초기화배열은 같은 자료형의 여..

코딩/c++ 2025.06.02