반응형

분류 전체보기 282

[C++] Inner Class (중첩 클래스, Nested Class)

특정 클래스 내부에서만 사용될 클래스를 중첩 클래스라고 한다. 내부에 선언된 클래스는 해당 클래스에서만 사용할 수 있고, 외부에서는 사용하지 못한다. (public으로 선언한 경우에는 접근자체는 가능하다.) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 #include #include using namespace std; class Person { public: string name; class Address { public: string country; string city; int houseNumber; }; Address add; void print() ..

언어/C++ 2022.01.06

[디자인 패턴] MVC 패턴

개요 MVC 패턴은 디자인 패턴 중 하나로 구성 요소를 세 가지로 구분한다. Model(모델), View(뷰), Controller(컨트롤러) MVC 패턴에 기반을 둔 MVVM(뷰 모델), MVP(프리젠터), MVW(왓에버) 등도 있다. 상세 1. 모델 : 앱의 정보, 데이터를 나타냄 1-1) 사용자가 편집하길 원하는 모든 데이터를 들고 있어야 함. 1-2) 뷰나 컨트롤러에 대해 어떠한 정보도 몰라야 함. 1-3) 변경이 일어나면, 변경 통지에 대한 처리방법을 구현해야만 함. 2. 뷰 : 사용자 인터페이스 요소를 나타냄, 데이터 및 객체의 입력, 출력을 담당함. 2-1) 모델이 가지고 있는 정보를 따로 저장해서는 안됨 -> 그리라는 명령을 받으면, 단순히 표시하기만 하고 정보들은 저장하지 않아야 함. 2..

CS 2021.12.28

[C++] #pragma once와 #ifndef ~ #endif

컴파일시에 C++의 #include는 해당 헤더의 내용이 복사되어 들어오게 된다. 이 때, 같은 내용의 헤더가 두 번 이상 복사될 수 있는데, 이것을 막아주는 게 #pragma once와 #ifndef ~ #endif이다. 차이점은 다음과 같다. #pragma once는 컴파일 동안 단 한 번만 처리를 하므로 더 빠른 컴파일이 가능해진다. 단, 일부 구형 컴파일러에서는 지원이 안 되는 경우도 있다. #ifndef는 if not defined의 약자이다. 정의하지 않았다면 #define 부터 #endif 까지의 코드를 include 한다. #ifndef EXAMPLE_H #define EXAMPLE_H #endif

언어/C++ 2021.12.26

[cocos2d-x] 테트리스 만들기

https://github.com/Palamore/Tetris_palamore/tree/master/Tetris_palamore/Tetris_palamore GitHub - Palamore/Tetris_palamore: tetris tetris. Contribute to Palamore/Tetris_palamore development by creating an account on GitHub. github.com https://blockdmask.tistory.com/51 [C언어 게임] 테트리스 게임 (Tetris Game with C) 안녕하세요. BlockDMask입니다. 설명하기 전에, 메이킹 영상먼저 보겠습니다. 초기 배경을 만들고 하나씩 수정을 하는 모습을 동영상으로 만들었습니다. 영상의 마..

카테고리 없음 2021.12.20

[CS] OSI 7 Layer

OSI 7계층으로 나눈 이유 통신이 일어나는 과정을 단계별로 파악하기 쉬움 -> 특정한 곳에 이상이 생기면 해당 단계만 고치면 됨 1. 물리 계층 전기적, 기계적, 기능적 특성을 이용해 통신 케이블로 데이터 전송 통신 단위 : bit 전송하려는 데이터가 무엇인지, 어떤 에러가 있는지 등에는 전혀 신경 쓰지 않음. 단순히 전기적인 신호로 변환 후 주고받기만 함 장비 : 통신 케이블, 리피터, 허브 2. 데이터 링크 계층 정보의 전달을 수행할 수 있도록 도와주는 역할 오류 찾기 및 재전송도 함 맥 주소를 가지고 통신 장비 : 브릿지, 스위치 3. 네트워크 계층 데이터를 목적지까지 안전하고 빠르게 전달 (라우팅) 라우팅, 흐름 제어, 세그멘테이션, 오류 제어, 인터네트워킹 등 수행 IP 계층 : IP 패킷의 ..

CS 2021.12.16

[C++] 스마트 포인터

개념 C++은 C#처럼 Gabage Collecter(GC)가 없다. 따라서 메모리 할당을 따로 하고, 해제 해줘야한다. 예를 들어 new로 할당해준 경우에는, delete로 해제해줘야 한다. 해제해주지 않으면, memory leak(메모리 누수)이 발생하게 되고, 이는 프로그램 오류의 원인이 된다. 스마트 포인터를 사용하면, 사용이 끝난 메모리를 자동으로 해제해 주므로, 이런 오류를 방지할 수 있다. 헤더 파일 : memory 종류 1. unique_ptr 하나의 스마트 포인터만이 특정 객체를 소유할 수 있도록, 객체에 소유권 개념을 도입한 스마트 포인터 이동은 가능하지만, 복사는 불가능하다. 따라서 참조 전달은 가능하지만, 값 전달(복사 생성자)은 불가능. 2. shared_ptr 하나의 특정 객체를..

언어/C++ 2021.12.15

[백준 1092] 배 C++

문제 백준 1092 배 C++ 1092번: 배 첫째 줄에 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 각 크레인의 무게 제한이 주어진다. 이 값은 1,000,000보다 작거나 같다. 셋째 줄에는 박스의 수 M이 주어진다. M은 10,000보 www.acmicpc.net 풀이 입력을 받은 뒤, 크레인과 상자를 정렬해주고 크레인과 상자 모두 큰 것 부터 처리한다. 소스 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 #include #include using namespace std; int main() ..

알고리즘/백준 2021.12.11
반응형