게임 개발 학원/C++
-
시험 복습게임 개발 학원/C++ 2024. 3. 3. 23:01
1. 런타임 에러가 생기는 이유 Null 포인터 ptr을 역참조 하고 있음 Null 역참조 : 프로그램에서 객체가 생성되면 메모리 공간에 할당되어 저장되고 객체의 값을 불러오기 위해서는 객체가 저장된 메모리의 위치주소가 필요하다 객체가 Null인 경우엔 객체가 없는 것으로 간주되어 메모리에 저장되지도, 저장된 주소값도 존재하지 않는다 이런 상황에서 Null인 객체를 호출하면 불러올 주소값이 존재하지 않아 프로그램이 정상적으로 작동할 수 X 2. Value1의 값 : 1 Value2의 값 : 1 Value3의 값 : 3 CopyInt는 Value2의 주소의 값을 복사하는게 아닌 주소를 가져와 그 값을 변경했으므로 Value2에 Value1의 값이 들어가고 CopyInt는 Value3의 실제 주소값을 가져와..
-
-
객체지향 프로그래밍(OOP)게임 개발 학원/C++ 2024. 2. 28. 13:45
객체 지향 프로그래밍(Object Oriented Programing) 1. 객체 객체 : 모든 실재하는 대상 2. 클래스 클래스 : 같은 객체들이 공통적으로 갖는 속성들을 모아서 정의내린 것을 클래스 (이를 추상화라고 함) ex) 객체는 붕어빵, 클래스는 붕어빵을 찍는 기계 3. 객체지향 프로그래밍 (OOP) OPP : 필요한 데이터를 추상화하여 속성과 행위를 가진 객체를 만들고, 그 객체들 간의 유기적인 상호 작용을 통해 로직을 구성하는 프로그래밍 방법 - 프로그램을 보다 유연하고 변경이 용이하게 만들수 있음 - 코드의 변경을 최소화하고 유지보수하는데 유리 4. OPP의 특징 1) 추상화 (Abstration) : 객체의 공통적인 속성과 기능을 추출하여 정의하는 것 2) 상속 (Inheritance)..
-
Call by value & Call by reference게임 개발 학원/C++ 2024. 2. 27. 15:45
call by value : 값에 의한 호출, (값을 인자로 전달하는 함수의 호출방식) 호출시 넘기는 값이 매개변수에 복사 call by reference : 참조에 의한 호출(주소값을 인자로 전달하는 함수의 호출방식) call by reference랑 call by value 인자의 값이 매개변수에 복사 된다는 점은 동일 call by reference는 복사되는 값이 데이터의 주소 값(참조값으로 함수를 호출했다) - 참조라는 개념은 포인터 포인터 : 주소를 저장하는 변수 기존의 변수는 데이터를 저장하지만 포인터는 메모리 공간의 주소를 저장 포인터 변수가 주소를 저장하려면 변수의 주소를 알아야한다 변수 이름 앞에 &연산자를 붙이면 해당 변수의 주소를 반환
-
2024.02.23(배열)게임 개발 학원/C++ 2024. 2. 23. 17:33
배열 : 같은 자료형을 가진 연속된 메모리 공간으로 이루어진 자료 구조 배열 효과적으로 데이터를 관리 배열 선언 : 표를 그리는 행위 배열에 데이터 저장 : 표에다가 문자나 숫자를 기록 배열에 저장된 데이터를 참조 : 표의 번호로 숫자와 문자를 구분 같은 자료형을 가진 변수들이 여러개 필요할 때 사용, 많은 양의 데이터를 처리할때 유용 배열 선언시 배열 길이에 변수X, 상수값만 가능 (const는 가능) 자료형 , 배열의 이름 , 배열의 길이 int arr[10]; //배열 선언(int형 타입의 배열) arr[2]; arr[0] = 1; // 1저장, arr[1]에는 쓰레기값 배열을 선언하는 방법 1. 크기를 명시하고 초기화 ex) int arr1[4] = { 1, 2, 3, 4 } 2. 배열의 크기를 ..
-
2024.02.21(if문, switch문)게임 개발 학원/C++ 2024. 2. 22. 15:23
if문이란 특정 조건에 의해서 선택적으로 실행이 가능하다 기본동작 : 조건이 참이면 실행한다 if (조건) { // 참이면 여기를 실행 } else if (조건) // 단독으로 사용 불가능 { // 만약 여기 조건을 만족한다면 아래에 있는 조건들을 전부 건너뛴다 // else도 건너뛴다. } else if (조건) { } else if (조건) { } else // 단독으로 사용 불가능 { // 위 조건이 전부 만족하지 않으면 여기를 실행한다 } switch (표현식) { case 1: // 표현식이 1일 경우 실행 case 2: // 표현식이 2일경우 실행 default: // 표현식이 1, 2 둘다 아닐경우 실행 break; } break : 조건 충족 코드 실행 후, 조건문 빠져나오는 역할 함.