※ 주의 사항 ※ 이 글의 목적은 '지식의 전달'이 아닌 '학습의 기록'입니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 앞서 const와 explicit 키워드를 배웠습니다. 이 둘은 나름의 의미가 있으며, 또 유용하게 사용되는 키워드들입니다. 그런데 이번에 설명하는 mutable이라는 키워드는 가급적 사용하지 말아야 할 키워드입니다. 키워드 mutable은 다음과 같은 의미를 가집니다. 'const 함수 내에서의 값의 변경을 예외적으로 허용한다' 이 의미만 들어도 왜 가급적 사용하지 말아야 하는지 이해가 갈 듯합니다. 다음 예제를 보겠습니다. #include using namespace std; class Simple { privat..
※ 주의 사항 ※ 이 글의 목적은 '지식의 전달'이 아닌 '학습의 기록'입니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 상수 표현식, inline 함수, 상수 표현식 비교 C++11부터 constexpr 키워드로 상수 표현식을 사용할 수 있습니다. 상수 표현식은 inline 함수와 상당히 비슷합니다. 먼저 피보나치수열을 상수 표현식으로 구현한 예제를 보겠습니다. #include constexpr unsigned long fibonacci(unsigned long i) { return (i
※ 주의 사항 ※ 이 글의 목적은 '지식의 전달'이 아닌 '학습의 기록'입니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. C++에서 사용하는 데이터 타입은 C언어에서 사용하는 기본 데이터 타입과 객체 지향 언어로부터 도입한 클래스가 공존합니다. 그로 인해 C++에는 객체 지향 언어와 절차 지향 언어 등의 이질적인 문법으로 인해 변수를 선언하고 동시에 초기화시키는 다양한 방법이 존재합니다. 그러나 초기화 방법이 많다는 것인 변수 선언과 함께 클래스나 템플릿을 작성하는 데 에 어려움이 많다는 것을 의미합니다. 개발자가 예상하지 못한 에러가 발생할 확률이 많다는 의미입니다. 우선 정수 타입을 기준으로 기본 타입의 변수를 초기화시키는 방법들을 ..