목록C++ (46)
승쨩개발공부
프로그래밍이란? -> 어떠한 문제에 목적을 가지고 프로그래밍 언어(도구)를 이용하여 순차적으로 무언가를 짜는 것. -> (도구 = 알고리즘, 자료구조 등) -> 알고리즘이란? -> 어떤 문제에 대해서 효율적인(빠른) 해결 방법이 목적이다 -> (컴퓨터가 조금이라도 쉴 수 있게(연산을 적게) 효율적으로 하는 것 (문제 -> 과정 -> 결과) ) -> 자료구조란? -> 데이터를 기준으로 어떻게 관리하는가? 1. OOP(Object Oriented Programming)의 기본개념과 객체에 대해 기술. -> 모든 데이터를 객체로 취급해서 하는 프로그래밍, 객체는 독립적으로도 동작하고 다른 객체의 부품으로 사용할수 있다. -> 객체는 실체화되어있으며, 데이터나 기능으로 이루어져있다, 또 한, 자기 자신(객체)이..
Call by ? Call by Value -> 값에 의한 호출 Call by Adress -> 주소값에 의한 호출 Call by Reference -> 직접 참조의 의한 호출, 메모리 할당이 전혀 없다 Call by Value 값을 전달하는 형태의 함수 호출 함수 호출을 할떄 단순히 값을 전달하는 형태의 함수호출을 가리켜 Call by Value 라고 한다. -> 위 소스와 출력을 보면 Swap이 되지 않았다는것을 알 수 있다. -> 그 이유는, Callby_ValueSwap 함수의 매개변수 값인 _iNum1과 _iNum2의 값이 바뀌었지 정작 -> 메인함수의 변수인 iNum1과 iNum2의 저장된 값이 스왑으로까지 이어지지 않았다는 것을 알 수 있다. -> (그니깐 , 메인함수에는 값의 영향이 없다)..
난수 (randon) -> 순서나 규칙이 없는 무작위 수 -> 아이템 강화, 랜덤 박스, 크리티컬 확률 등 -> 확률이 적용되는 모든 것에 난수가 사용된다. 난수 추출 함수 -> rand() -> rand함수를 사용하면 난수가 추출된다, -> 단, 실핼 할 떄마다 같은 결과가 도출된다. -> 위험한 상황이 발생할 수 있다. 난수 추출 시 같은 결과가 나오는 이유 -> 난수 추출 시 컴퓨터는 seed 값을 확인하여 -> 해당 seed 값에 있는 난수를 순차적으로 추출해준다. -> 사용자가 seed 값을 변경하지 않을 경우 기본적으로 1의 값을 가진다. -> 이로 인해 프로그램을 다시 실행할 경우에는 중복된 숫자가 보인다. 중복되지 않는 seed값 -> 시간 -> 하루단위, 한달 단위, 일년 단위 등 기간이..
지역 변수와 전역 변수 -> 함수를 구현할 떄 사용한 {} 괄호를 기준으로 -> 내부에 선언되어 있으면 지역 변수 -> 외부에 선언되어 있으면 전역 변수 지역 변수와 전역 변수의 차이점 -> 메모리에 상주하는 기간의 차이 -> 변수에 접근할 수 있는 범위 지역변수 -> 메모리에 상주하는 기간 -> 함수가 시작되고, 종료될 떄까지만 메모리에 상주한다. -> 변수에 접근할 수 있는 범위 -> 해당 stack에 선언된 변수만 접근할 수 있다 -> 지역 변수와 매개 변수는 함수가 시작 되었을 떄 할당 시점에 들어가고, -> 종료 되었을 떄 소멸 시점에 들어가게 되며 -> 후입 선출형 구조 LIFO(Last-in, First-Out)로 되어있다. 여기서 a와 b는 main함수의 stack 영역에 할당이 된다. -..
진수 숫자를 표현하는 방법 진수의 종류 진수 변환 방법 1. 10진수 -> 2진수 -> 10진수의 값을 2로 나눠서 몫이 1이 되어 나누어 지지 않을 떄까지 나누어 준다. -> 그 후에 몫 1과 나머지 값을 아래부터 위에 순서로 명시해준다. 90 -> 1011010 2. 10진수 -> 8진수 -> 10진수의 값을 8로 나눠서 남은 숫자가 1이 나올떄까지 나눠준다. 90 -> 0132 3. 10진수 -> 16진수 -> 10진수의 값을 16으로 나눌 수 없을 떄까지 나눠준다. -> 나눌 수 없을떄 몫을 0x앞에 나머지를 몫의 뒤에 명시해준다. 90 -> 0x5A 4. 8진수, 16진수 -> 2진수 -> 각 진수의 결과 값을 2진수로 풀어서 계산 -> 8진수 ex) 0132 = 1011010 -> 90 -> ..
템플릿 거푸집에 비유할 수 있다. 하나의 틀에서 자료형이 다른 함수/클래스를 만들 수 있는 것. 템플릿의 형태 1. 함수와 템플릿 -> 템플릿 함수 -> 컴파일 중 템플릿을 호출하는 코드라인을 컴파일할 떄 -> 컴파일러가 실제 함수의 코드를 생성한다. -> 안에 명시한 자료형이 함수 템플릿에서 정의한 T자리에 매칭이 된다. -> 사용자가 를 명시하지 않을 경우 인자의 타입에 따라 템플릿 함수가 생성된다. -> 템플릿 함수는 일반적으로 포인터간의 + 연산은 불가능하다 -> 하지만 템플릿의 특수화(오버로딩)를 통해서 합치는 방법이 있다. 두가지 이상의 자료형을 사용할 경우 클래스 템플릿 템플릿의 파일분할 -> 템플릿 클래스는 코드라인을 번역할 떄 클래스의 원형을 만들어 놓는다. -> 헤더파일을 include..