본문 바로가기

(C/C++ 속성 정리) 28일 차 : 복사 생성자의 이해 안녕하세요 넬다이입니다. 오늘은 복사 생성자에 대해서 알아보는 시간을 가져보도록 하겠습니다. 복사생성자 복사 생성자를 알기 위해서는 클래스가 생성될 때 기본적으로 생성되는 것들이 있습니다. 그것은 1. 기본 생성자 , 2. 소멸자 , 3. 기본 대입 연산자 , 4. 기본 복사 생성자 이렇게 있습니다. 이것은 꼭 암기해주시기를 부탁드립니다. 여기서 기본적으로 기본 복사 생성자가 생성이 되는데요 기본 복사 생성자는 전일 차에서 말하는 얕은 복사를 진행하는 생성자를 만들어 주게 됩니다. 쉽게 코드로 보시지요 class CObj { private: intm_iValue; intm_iValue2; public: //이것은 우리가 생성하는게 아닌 생성자가 없다면은 컴파일러가 자동으로 생성해주는 함수입니다. /*CO.. 더보기
(C/C++ 속성 정리) 27일 차 : 깊은 복사와 얕은 복사의 이해 안녕하세요 넬다이입니다. 오늘은 정말 오랜만에 이렇게 글을 쓰게 되었습니다. 정말 죄송합니다. ㅠㅠ 자 오늘 주제는 깊은 복사와 얕은 복사의 이해입니다. 이해만 하신다면은 쉬운 주제가 될 것이고 그렇지 못하면은 수많은 버그를 만들 수 도 있기 때문에 잘 이해 부탁드립니다 자 일단 우리는 깊은 복사와 얕은 복사를 알아야 되는데요 깊은 복사와 얕은 복사는 메모리 할당 과정에서 메모리 할당 후 그 내부의 값을 복사하는 과정에서 이 현상이 발생하게 됩니다. 얕은 복사 얕은 복사는 메모리 할당을 하고 나서 그 내부의 값을 대입과 같은 행위를 한 뒤 메모리를 해제할 때 문제가 발생하게 됩니다. 예를 들어서 코드로 보여드리겠습니다. class CObj { private : char* m_pName; public : .. 더보기
(C/C++ 속성 정리) 26일 차 : Static이란? 및 특징 안녕하세요 넬다이입니다. 오늘은 Static에 대해서 정리를 해보겠습니다. static 변수의 특징 static 은 정적인 혹은 고정된 정지 상태이며 정적인 특성을 가지고 있습니다. 전역 변수와 비슷한 특징을 가지며 공간을 할당받고 초기화가 이루어지면 프로그램이 종료될 때까지 소멸이 일어나지 않으며 재초 기화도 일어나지 않습니다. 전역 변수와는 다르게 중괄호(선언된 지역) 내부에서만 접근할 수 있습니다. 간단한 예제 소스입니다 #include using namespace std; void RenderStatic(void) { static int iTemp = 0; cout 더보기
(C/C++ 속성 정리) 25일 차 : Const 한정자란? 안녕하세요 넬다이입니다. 오늘은 Const 한정자에 대해서 알아보는 시간을 가져보겠습니다. const 한정자(제한자) const는 예약어입니다. 예약어는 c++에서 변수명이나 함수명으로 사용할 수 없습니다. 기호 상수를 초기화할 수 있수 없으며 상수의 값을 변경하는 것 또한 안된다. 예로 불가한 코드를 보여드리겠습니다. const int Student = 10; Student = 20; const 가 붙으면 상수 화가 이루어지기 때문에 한 번 초기화된 값으로 고정이 되고 절대 변경할 수 없다. class CTest { private: const intm_iTest; public: voidRender(void) { cout 더보기
(C/C++ 속성 정리) 24일 차 : 객체지향 프로그래밍이란? 안녕하세요 넬다이입니다. 오늘은 객체지향 프로그래밍이란? 에 대해서 정리해 보도록 할 텐데요 기존에는 C언어의 문법이나 기능을 다루었다면은 이제는 C++의 기능들을 다뤄보는 시간을 가져보겠습니다. 객체 지향 프로그래밍이란? 프로그램을 사람이 사는 실세계로 옮겨 놓은 형태, 자신을 나타내는 정보와 실행하는 기능을 포함한다. 클래스는 어떠한 틀을 말하며 사람이라는 클래스가 있다면 학교에 있는 실제 학생들이나 선생님들은 실체화된 객체라고 생각하면 된다. 클래스를 배우기 전에 객체 지향 프로그래밍의 특징에 대해서 알아보도록 하겠습니다. 추상화(abstraction) 실체를 개념화시킨 클래스 정의 작업을 뜻하며 어떤 클래스를 만들 때 포함되어야 할 특성이나 기능들을 개념화시키는 것을 추상화라고 한다. 캡슐화(en.. 더보기
(C/C++ 속성 정리) 23일 차 : 분활컴파일 및 안녕하세요 넬다이입니다. 오늘은 분할 컴파일에 대해서 알아볼까 합니다. 코딩을 하다 보면은 줄 수가 정말 몇천 자까지 넘어가는 경우도 있는데요 이것을 적절하게 파일을 나눠서 가독성을 높여주며 관리의 용의 하게 만들어 줄 수 있는 장점을 가지고 있으며 어렵지 않은 내용이니 다들 잘 따라오실 것이라고 믿습니다. 분할 컴파일 한 파일 안에 모든 코드를 작성해도 되지만 프로젝트가 커지게 되면 가독성이 떨어지게 되는데요 우리는 이것을 해결하기 위해서 분할 컴파일을 사용하게 됩니다. 분할 컴파일을 하게 되면은 각각 기능의 맞게 함수화를 하여 다른 파일에 모아두는데요 예를 들어서 Math라는 파일 안에는 계산을 위한 함수들만 넣어놓게 된다면은 제가 Math관련 함수를 찾아야 한다면은 Math파일만 찾으면 되기 때문에.. 더보기
(C/C++ 속성 정리) 7일 차 : 바이트의 저장순서 및 별찍기 안녕하세요 넬다이 입니다. 오늘은 7일 차 정리가 되겠습니다!!!! 오늘은 바이트의 저장 순서 및 반복문의 복습 겸 해서 별 찍기를 진행해보겠습니다. 저번 시간에도 말씀드린 듯이 반복문은 중요한 문법이기 때문에 다시 한번 알아보는 시간을 가질까 했어요!!!! 그러니 여러분들도 파이팅해주세요!! 바이트의 저장 순서 일반적으로 우리가 메모리 주소를 보면 16진수로 되어 있는 것을 볼 수 있다. 바이트의 저장 순서를 영어로 엔디안이라고 한다. intiTest = 0x12345678; char*pTest = (char*)&iTest; for(int i = 0; i < 4; ++i) { printf("%x", pTest[i]); } 위에 코드를 실행하게 되면은 이러한 결괏값이 나오게 된다. 반복문을 통해 char.. 더보기
(C/C++ 속성 정리) 6일 차 : 반복문(for , while) 안녕하세요 넬 다이입니다. 오늘은 반복문 차례가 돌아왔어요!. 오늘도 힘드시겠지만 어려운 파트는 아니니깐 다들 힘내세요!!! 반복문 여러 번 출력을 해야 할 때, 반복문을 사용해서 간단한 코드 몇 줄로 원하는 부분을 반복적으로 출력이 가능하기 때문이다. while 문 while(내부의 조건이 true 가 된다면) 계속해서 루프를 돌게 된다. while(1); 이런 식으로 false가 아닌 값은 모두 true이다. 0은 false이고 0이 아닌값은 전부 true이다. int iAA = 0; while(true) { //while 중괄호 영역을 탈출하기 위해서 //break 사용이 가능하다. break 가 있다며은 반복문 밖으로 나간다. if(iAA > 10) break; cout 더보기