본문 바로가기

(C/C++ 속성 정리) 29일 차 : 상속이란? 안녕하세요 넬다이입니다. 오늘은 상속에 대해서 설명을 드릴 텐데요 상속을 잘 사용하면 개발이 매우 편하고 은닉성이라던지 다향성을 이용한 다양한 개발이 되기 때문에 이해를 잘하시면 좋을듯싶습니다. 그러면 오늘 정리 시작하겠습니다 상속이란? 상속이란 여러분들이 잘 알고 있는 상속(부모님이나 어떤 사람에게 무언가를 물려받는다)이라는 뜻으로 많이 기억하시고 알고 계실 텐데요 상속이란 말 그대로 상속이라는 프로그램 문법을 통해서 물려받는다는 것으로 이해하시면 됩니다. 제가 여자 친구에게도 상속에 대해서 설명해줄 때는 부모님의 집이 있는데 부모님의 집을 내가 사용할 수 있다는 개념? 부모님 집에 있는 가구 및 주방도구를 사용하는 것 또한 부모의 것이지만 자식인 나도 사용을 할 수 있다고 설명을 하는데요. 그만큼 부.. 더보기
(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++ 속성 정리) 22일 차 : 함수포인터를 이용한 사칙연산 계산기 만들기 안녕하세요 넬다이 입니다. 오늘은 함수포인터를 이용해서 계산기를 만들어 보는 시간을 가져볼까 합니다. 짧은 내용이니 부담갖지 마시고 다들 파이팅입니다. 계산기만들기 자 계산기를 만들어 볼껀데요 사칙연산 계산을 위해서 일단 함수들은 적어보겠습니다. int PlusFunc(int iFirst, int iSecond); int MinusFunc(int iFirst, int iSecond); int MultiFunc(int iFirst, int iSecond); int DivFunc(int iFirst, int iSecond); 자 일단 계산을 하기위한 함수 4개를 선언하고 이에 맞는 정의를 해보도록 하겠습니다. int PlusFunc(int iFirst, int iSecond) { return iFirst +.. 더보기