※ 주의 사항 ※ 이 글의 목적은 '지식의 전달'이 아닌 '학습의 기록'입니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 선수 지식 C언어의 포인터를 이해하고 있으면 이 글의 내용의 이해가 쉽다! C++ 클래스의 소멸자의 호출시점에 대해 이해하고 있으면 이 글의 내용의 이해가 쉽다! 스코프에 대해 이해하고 있으면 이 글의 내용의 이해가 쉽다! 레퍼런스 카운팅에 대해 이해하고 있으면 이 글의 내용의 이해가 쉽다! 스마트 포인터, 그게 뭔데? C언어에서 포인터를 공부했다면 메모리를 동적으로 할당하고 해제하는 걸 직접 해봤을 것이다. 아직 이런 경험이 없다면 이 글은 조금 이르다. C++ 에서는 new연산자를 이용해서 메모리를 동적으로 할당하..
※ 주의 사항 ※ 이 글의 목적은 '지식의 전달'이 아닌 '학습의 기록'입니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 이 글을 읽기 전 객체 지향 언어란 무엇인지, 객체란 또 무엇인지에 대한 개념 이해가 필요하다면 아래에 링크해 둔 글을 먼저 읽고 오길 바란다. 2022.02.08 - [C++ 공부 일지] - C++17 객체 지향 언어와 객체(Object)의 개념 이해 C++17 객체 지향 언어와 객체(Object)의 개념 이해 ※ 주의 사항 ※ 이 글의 목적은 '지식의 전달'이 아닌 '학습의 기록'입니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. C++ koey.t..
※ 주의 사항 ※ 이 글의 목적은 '지식의 전달'이 아닌 '학습의 기록'입니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. C++ 언어는 객체 지향 언어다. 객체 지향 언어가 무엇인지 절차 지향 언어와 비교해보면 이해가 빠르다. 근데 절차 지향 언어는 또 뭔데?? 절차 지향 프로그래밍이니 객체 지향 프로그래밍이니 하는 것은 프로그래밍의 패러다임을 얘기하는 것이다. 패러다임을 번역해보면 양식, 인식 체계라고 나오는데, 그냥 프로그램 코드를 짜는데 양식이 있다는 얘기다. 프로그래밍 언어 문법을 말하는 건가? 하는 생각이 들었다면 아직 잘못 이해하고 있는 것이다. 만약 C언어부터 공부하고 이제 C++를 배우고 있는 입장이라면 코드를 짜는 데에도..
※ 주의 사항 ※ 이 글의 목적은 '지식의 전달'이 아닌 '학습의 기록'입니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 컴퓨터는 내부 회로로 실시간 시계(RTC : Real Time Clock)를 가지고 있어 언제 어느 때라도 필요한 시간을 제공할 수 있다. 그리고 C++17에서는 시간을 다루기 위해 다음 두 가지 방법을 제공하고 있다. 라이브러리, C++11 이후 사용 가능 C-style 라이브러리 C-style 라이브러리도 분명 나쁜 건 아니겠지만 나는 라이브러리를 선택해 정리해보았다. chrono 라이브러리의 주요 타입 chrono 라이브러리에서는 다음 세 개의 주요 타입을 정의하고 있다. 이 세 개의 타입만 제대로 이해해도 ch..
※ 주의 사항 ※ 이 글의 목적은 '지식의 전달'이 아닌 '학습의 기록'입니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 앞서 const와 explicit 키워드를 배웠습니다. 이 둘은 나름의 의미가 있으며, 또 유용하게 사용되는 키워드들입니다. 그런데 이번에 설명하는 mutable이라는 키워드는 가급적 사용하지 말아야 할 키워드입니다. 키워드 mutable은 다음과 같은 의미를 가집니다. 'const 함수 내에서의 값의 변경을 예외적으로 허용한다' 이 의미만 들어도 왜 가급적 사용하지 말아야 하는지 이해가 갈 듯합니다. 다음 예제를 보겠습니다. #include using namespace std; class Simple { privat..