본문 바로가기

C++40

C++ 클래스 구조체랑 같은 내가 만든 자료형 구조체랑 다르게 접근제한 지정을 할 수 있다. //private ,public , protected Private : 클래스 내부에 정의된 함수에서만 접근 허용 (중요한 정보를 감출때 사용) Public : 어디서든 접근이 가능 (외부에서도 모두 접근 가능) 생성자 이니셜라이져 소멸자 : ~클래스이름() 클래스는 생성자 소멸자를 안만들면 컴파일러가 자동으로 만들어 준다. 그 이유는 객체를 만들었을 때 생성이 되어야 하고 종료될 때 소멸자를 호출 해줘야 하기 떄문 구색상 존재해야 하기때문 이렇게 자동으로 생성되는것을 디폴트 생성자 디폴트 소멸자라고 한다. 디폴트는 아무런 기능이 없다. this : 숨겨진 포인터 this를 사용함으로써 객체에 주소를 나타내줌 c에서는 위에처럼.. 2022. 8. 23.
C++ 리스트 리스트 함수 직접 구현해보기 리스트는 가변배열과 다르게 가변배열은 메모리가 연속되있다는 특징을 가졌고 리스트는 데이터가 뛰엄뛰엄 끊어져있다. 데이터가 필요할 때 마다 한칸한칸 동적할당해서 데이터를 직접 넣는다. 이 데이터 한칸을 노드라고한다. 하나에 노드안에는 데이터가 들어있지만 다음 데이터를 가르키는 주소도 가지고있어야 한다. list.cpp 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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 .. 2022. 8. 17.
C++ 가변배열 지금까지에 배열은 저렇게 선언해서 사용하였다. 만약에 변수를 이용해서 사용하면 어떻게 될까 분명히 같은 뜻인데 에러가 난다. 그 이유는 변수이기 때문에 a에값이 바뀔 수 있기 때문에 즉 런타임중에 알 수 있기 때문이다. 그때 사용할 수 있는게 가변배열이다 가변배열은 실행도중에 배열에 개수를 내가 원하는데로 선언할 수 있다. 객체(Instance) int가 자료형일경우 int a; a가 객체라고 할 수 있다. 가변배열 만들기 b.h 헤더파일 b.cpp 소스파일 main 소스파일 (*pArr).pint == pArr->pint 정렬 함수 추가해보기 랜덤함수를 사용하여 숫자가 랜덤으로 나오게 한다음 만든 소트 함수로 정렬 main b.cpp while문으로 반복을 계속하는 이유는 33을 오른쪽으로 보냈지만 아.. 2022. 7. 20.
C++ 동적할당 동적할당 프로그램이 실행되는 런타임동안 사용자가 직접 공간의 크기나 시점을 결정하여 힙 영역의 메모리를 할당 받는것을 동적할당 이라고 한다. 사용자에 의해 메모리가 동적으로 할당이 되면 프로그램이 끝날 때 까지 유지되므로, 메모리 공간 사용이 끝나면 메모리 낭비를 줄이기 위해 명시적으로 메모리 할당을 해제 해주어야한다. 즉 프로그램이 실행 됐을 떄 내가 원하는 만큼 메모리를 요청할 수 있는것을 말한다. 말록으로 이용하여 동적할당 동적할당 1. 런타임 중에 대응이 가능해야함 2. 사용자가 직접 관리해야함(해제) 힘 메모리를 만약에 쓴다면 free를 이용하여 해제해줘야한다. 안그러면 메모리가 부족현상으로 이루어지기 떄문에 해제를 해줘야함. 그렇기 때문에 프로그래머가 관리를 해줘야한다. 출처 : https:/.. 2022. 7. 14.
C++ 문자열 char형은 1byte형이므로 표현할 수 있는 숫자가 127개 마꺠 없다. 아스키코드를 보면 실제로 127개까지 마깨 없다. 그러면 한글같은거는 char형으로는 표현 할 수 가 없다. 그래서 2바이트인 wchar형을 써준다. wchar_t wc = L'a';; // 앞에 L을 붙여 2바이트를 쓴다는것을 알려준다. 배열 사용법 wchar_t wc[10] = L"abcdefghi"; // 마찬가지로 앞에 L을 붙여줌 a b c d e f g h i 0 2바이트로 10개 만들었다. 문자는 9개지만 9개 선언하면 에러가 난다. 왜냐하면 끝에 0이 끝난다고 알려주므로 9개 선언하면 에러가 남 0까지 포함하니 잘 생각하자. const wchar_t* pchar = L"abcdefg"; // 문자도 포인터로 사용할 .. 2022. 6. 9.
C++ 문자 C++ 에서 문자 출력하는 방법 char써서 표현할 수 있다. 1바이트를 사용 char c = 97 // a가 출력됨 이유는 아스키코드로 97이 a이기 때문 아스키코드 참조 숫자를 입력하면 아스키코드 값에 맞는 문자로 바뀜 2바이트 문자형 wchar_t char 은 1바이트 wchar_t는 2바이트를 사용한다. 출처 : https://www.youtube.com/c/AssortRockGameAcademy 2022. 6. 7.