CPP 48

cpp 파일 관리

일반적으로 프로젝트 내에는 여러가지 파일이 있다. 대표적으로 소스파일, 헤더파일이 있다. 각 프로젝트에는 헤더 파일이 있는데 이를 없애고 그냥 헤더 파일을 따로 만든다. 이름이 같은 헤더 파일과 소스 파일은 같이 띄워놓고 작업하는 경우가 많다. 헤더 파일과 cpp 파일 역할 헤더 파일은 알리미 역할을 한다. 예를 들면, 함수의 선언부를 넣어서 어떤 함수가 사용될 것인지 cpp파일에 알려주는 용도이다. 되도록이면 구현 부분은 헤더 파일에 작성하지 말자. 소스 파일은 함수의 구현 부분을 작성한다. 이때 #include를 이용해서 헤더 파일을 복붙하는 효과를 받아야 한다. 참고로 헤더 파일에는 항상 전방 선언을 사용하는 것을 원칙으로 작성해야 한다. 상속 구조와 같이 어쩔 수 없는 상황에서만 헤더에서 헤더를 ..

cpp 다차원 배열

다차원 배열 int apartment2D[2][5] = { { 1, 2, 3, 4, 5 }, { 1, 2, 3, 4, 5 } }; 다차원 배열을 쉽게 생각하면, 아파트 1층 101호, 2층 204호처럼 층과 호로 이뤄진 배열이라고 보면 된다. 현재 아파트는 2층이며 각 층마다 5개의 호실이 존재한다. 이때 어셈블리 관점에서 보면 1층부터 2층까지 모든 호실은 서로 연속적으로 이어져 있다는게 중요하다. // apartment2D[ 0~1 ][ 0~4 ] for (int floor = 0; floor < 2; floor++) { for (int room = 0; room < 5; room++) { int num = apartment2D[floor][room]; cout

cpp 포인터와 배열

포인터 const char* test1 = "Hello World"; 포인터는 주소를 담는 '바구니'이며, 상수이므로 수정할 수 없다. test1[시작 주소]는 8 byte 크기를 가진다. test1이 가리키는 주소로 가면 [H][e][l][l][o][][W][o][r][l][d][\0]을 볼 수 있다. 배열 char test2[] = "Hello World"; 배열 이름은 배열의 시작 주소를 가리킨다. 하지만 포인터처럼 바구니를 만들지 않는다. 따라서 포인터처럼 정해진 크기를 가지지 않으며, 현재 test2가 가리키는 주소의 배열은 12 byte 크기를 가지고 있다. 또한 언제든지 각 index에 위치한 데이터를 수정할 수 있다. 배열을 함수의 인자로 넘기기 void Test(char a[]) { a[..

cpp 배열

배열 초기화 int numbers[5] = {};// 기본값인 0으로 초기화 int numbers1[10] = { 1, 2, 3, 4, 5 };// 설정한 값들을 제외한 나머지는 0으로 초기화 int numbers2[] = { 1, 2, 3, 11, 45, 32, 35 };// 데이터 개수만큼 배열의 크기를 정해준다. 배열의 초기화 방법은 다양하다. 알아두자. struct StatInfo { int hp = 0xAAAAAAAA; int attack = 0xBBBBBBBB; int defence = 0xDDDDDDDD; }; const int monsterCount = 10; StatInfo monsters[monsterCount];// StatInfo[12byte]가 10개 VS 컴파일러를 기준으로 배열..

cpp rand와 상수

RAND 0~32767 사이의 숫자 중 하나를 랜덤으로 설정한다. srand(time(0)); rand(); 주의할 점은 rand는 항상 다른 값을 랜덤으로 설정하지 않는다. 따라서 항상 다른 값을 설정하고 싶다면, srand를 통해 seed를 설정한다. 그리고 일반적으로 srand(time(0))을 이용해서 seed를 계속 변경시킨다. time()은 현재 시간과 관련있는 코드다. 상수 const는 2021.09.04 - [CPP공부] - cpp const와 메모리 구조 ENUM const int SCISSORS = 1; const int ROCK = 2; const int PAPER = 3; 가위바위보 게임을 만들 때는 3가지 상수만 있으면 괜찮았다. 하지만 게임의 상태이상을 나타내거나 새로 추가할 때..

cpp 반복문

반복문은 게임에서 가장 중요한 요소다. 기본적으로 게임을 끌 때까지 계속 게임을 실행할 때 사용하기 때문이다. 또 다른 예시는 목적지에 도달할 때까지 계속 이동하는 것도 있다. while 문 while (조건식) { 명령문 } do-while 문 do { 무조건 한 번은 실행된다. } while (조건식); do-while문은 잘 사용하지 않지만, 다른 사람이 사용할 가능성이 있기 때문에 알아두기만 하자. for 문 for (초기식; 조건식; 제어식;) { } 초기식: 조건식에 필요한 변수를 생성하는 요소 조건식: 반복을 실행하기 위한 조건 제어식: 반복문을 멈추기 위한 요소 for (int count = 0; count < 5; count++) { cout