C++(26)
-
C++ 객체지향, 동적할당
// 객체 지향 프로그래밍 // 지난번 클래스에 이어서 2-1) 객체지향 프로그래밍의 특징 (1) 추상화(abstraction) - 불필요한 부분을 생략하고 객체의 속성 중에서 가장 중요한 것에 중점을 두어 개략화, 다시 말해 요점을 간추려 모델화시킨 것. (2) 캡슐화(encapsulation) - 데이터와 데이터를 처리하는 함수를 하나로 묶는 것 - 캡슐화된 객체의 세부 내용이 은폐되어, 기능 변경이 발생해도 오류의 파급효과가 적음 - 캡슐화된 객체들은 재사용이 가능함 - 객체들 간의 결합도가 낮아지고 인터페이스가 단순해짐 (3) 정보 은닉(data hiding) - 캡슐화에서 가장 중요한 개념으로써, 다른 객체에게 자신의 정보를 숨기고 연산만을 통해서 접근할 수 있도록 허용 - 각 개체의..
2021.08.12 -
C++ 클래스
// 클래스(class) 1. 정의 - C언어의 구조체는 타입이 다른 변수의 집합이었다. C++의 클래스는 여기에다가 함수를 더 추가한 것이다. ※ 클래스 안에서 작성한 멤버 함수는 메서드(method)라고 부름, 클래스가 제공하는 기능을 함수로써 실행하기 때문에 이러한 이름이 붙음 2. 객체 지향 프로그래밍(OOP, Object-Oriented Programming) - 모든 데이터를 객체(Object)로 취급 - 객체의 상태(state)와 행동(behavior)을 구체화하는 형태 - 이러한 개념을 가지고 객체를 만들기 위한 틀과 같은 것이 클래스 2-1) 객체 지향 프로그래밍의 특징 (1) 추상화(abstraction) (2) 캡슐화(encapsulation) (3) 정보 은닉(data..
2021.08.11 -
C++ 열거형 데이터 Enum
// 열거형 데이터(enum) 1. 정의 - Enumration 이란 변수가 가질 수 있는 값들을 한 곳에 나열해놓은 자료형 - 어떤 변수가 가질 수 있는 값이 일정한 범위로 정해져 있다면 일반적인 값보다 열거형을 쓰는 것이 한 방법일 수 있음 2. 사용 방법 - enum 객체명 {멤버1, 멤버2...}; 3. 특징 - 내부적으로 정수로써 처리하며, 각 요소는 0부터 1씩 증가하는 정수 값을 가진다. 4. 장점 - 가독성이 향상. 알아보기가 편함 // 내부적으로는 정수로 처리되는 enum // 0, 1, 2, 3....차례로 올라감 enum movement { IDLE, ATTACK, MOVE, JUMP }; int main() { // 사용 예 (1) int charMovement =..
2021.08.11 -
C++ 셔플
// 셔플 (shuffle) 스왑 int temp, index1, index2; for(int i = 0; i < 100; i++) { temp = index1; index1 = index2; index2 = temp; } int number[10]; int temp, index1, index2; // 배열 초기화 for(int i = 0; i < 10; i++) { number[i] = i; } // 몇 번 섞을 지 for(int i = 0; i < 100; i++) { index1 = rand() % 10; index2 = rand() % 10; temp = number[index1]; number[index1] = number[index2]; number[index2] = temp; }
2021.08.06 -
C++ 포인터
// 포인터(pointer) 1. 정의 - 변수의 메모리 주소를 저장하는 또 다른 변수로 정의 - 변수는 메모리 상의 저장 공간인데, 이것의 위치값을 알면 언제든지 사용할 수 있다. 이 때, 위치값은 메모리 주소를 가리킨다. - 주소를 사용하기 위해서는 주소를 구하는 주소 연산자, 주소를 담는 포인터, 그리고 포인터로 변수를 사용할 때 필요한 간접참조 연산자를 알아야 한다. ◆ char형 변수가 문자를 저장하고 int 형 변수가 정수를 저장하는 것처럼 포인터는 주소값을 저장하는 데 사용한다. 2. 메모리 주소 - 프로그램이 사용하는 메모리에는 바이트별로 주소값이 할당되어 있다. - 이 값은 0부터 시작하고 바이트 단위별로 1씩 증가한다. - 2바이트 이상의 크기를 갖는 변수는 여러 개의 주소(..
2021.08.06 -
C++ 전역 변수, 지역변수
// 전역변수와 지역변수 (global varialbe / local variable) 1. 전역변수 1) 함수 바깥에 선언한다. 2) 특정한 함수 내부에서 선언된 것이 아니므로 어디에 속하지 않고 해당 소스 파일 전체가 공유한다. 3) 프로그램이 실행 중일 때 메모리를 계속 점유중이며, 이는 프로그램이 종료될 때 비로소 소멸한다. 4) 한 번 정해진 메모리 위치에 계속 남아있어야 하므로 *정적(static) 데이터 영역에 생성된다. 5) 별도의 초기식이 없어도 0으로 초기화된다. 프로그램 전체에 걸쳐서 사용되기 때문에 초기값을 지정하지 않아도 안전을 위해 쓰레기값이 아닌 0으로 초기화한다. * 정적(static) 데이터 영역 : 프로그램의 코드 바로 다음에 위치하는 실행 파일의 한 부분이며, 프..
2021.08.05