※ 주의 사항 ※ 이 글의 목적은 '지식의 전달'이 아닌 '학습의 기록'입니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 열거형은 다음과 같이 두 종류의 포맷을 같습니다. 범위가 없는 열거형(unscoped enum) 범위가 있는 열거형(scoped enum) 범위가 없는 열거형은 각각의 멤버가 전역 변수처럼 프로그램 전체 영역에 영향을 끼치는 열거형을 말합니다. 반면 범위가 있는 열거형은 각각의 멤버가 지역 변수처럼 열거형 타입으로 선언된 변수에 국한되어 영향을 미치는 열거형을 말합니다. 범위가 있는 열거형은 C++11부터 추가되었습니다. 다음의 예제를 통해 두 종류의 열거형의 사용법과 특징들에 대해 알아보겠습니다. enum color..
※ 주의 사항 ※ 이 글의 목적은 '지식의 전달'이 아닌 '학습의 기록'입니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 구조체 C++의 구조체는 C언어의 구조체와 달리 변수 이외에 함수도 멤버로 가질 수 있고, typedef 지시어 또는 using 선언문으로 새로운 데이터 타입을 만들어 이를 멤버로 가질 수도 있습니다. Account 구조체를 정의하고 출금과 계좌 정보를 출력하는 구현하는 예제를 통해 C언어와 C++에서 사용하는 구조체의 차이점에 대해 알아보겠습니다. 먼저 아래는 C언어의 예제입니다. #pragma warning(disable: 4996) #include #include #include struct Account; ty..
※ 주의 사항 ※ 이 글의 목적은 '지식의 전달'이 아닌 '학습의 기록'입니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. char 타입 char 타입은 원래 1바이트의 영문자를 나타냅니다. 그러나 만약 char 타입의 배열로 사용한다면, 실제 다음의 예제와 같이 한글이나 한자처럼 1바이트 이상을 차지하는 유니코드를 수용할 수 있습니다. #include #include int main() { char en[] = "Hello world!"; std::cout
※ 주의 사항 ※ 이 글의 목적은 '지식의 전달'이 아닌 '학습의 기록'입니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. void 타입 void 타입은 주로 변수의 타입을 지정할 수 없는 경우에 많이 사용합니다. 그에 따라 void 타입은 안정성이 약해 최든 모던 C++에서는 직접적인 사용을 자제하고 있습니다. 아래는 예시입니다. void Foo(void) {}; //void 타입의 사용을 권장하지 않음 void Foo() {}; //매개 변수가 없는 형태로 선언 위의 예시를 보고 void의 사용을 자제하기 위해 함수의 반환 타입에도 역시 void를 사용하지 않는 것이 좋지 않은가? 하고 의문이 들 수 있습니다. 물론 void의 사용을 ..
※ 주의 사항 ※ 이 글의 목적은 '지식의 전달'이 아닌 '학습의 기록'입니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. auto 타입과 decltype 타입은 C++11에서 나온 타입으로 컴파일러가 자동으로 변수 타입을 추론하여 정할 때 사용합니다. 아래는 예제입니다. #include int main() { auto name = "koey"; //name 변수는 문자열을 저장하므로 const char* 타입 int foo = 0; auto bar = foo; //bar 변수는 foo 변수의 데이터 타입과 같은 타입으로 인식 decltype(foo) num; //num 변수는 foo 변수의 데이터 타입과 같은 타입으로 인식 return ..
※ 주의 사항 ※ 이 글의 목적은 '지식의 전달'이 아닌 '학습의 기록'입니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. C++17에서 신택스 슈거(syntactic sugar)와 자동화 타입 추론이 결합되어 새로운 구조체 형태의 바인딩 기능이 추가되었습니다. 신택스 슈거란 무엇이고, 자동화 타입 추론은 또 무엇인지 먼저 정리하고 넘어가도록 하겠습니다. 신택스 슈거(syntactic sugar) 신택스 슈거란 '사람이 쉽게 이해하고 쉽게 표현할 수 있도록 컴퓨터 언어를 디자인해 놓은 문맥'을 의미합니다. 사람이 사용하기 달콤하다는 것에서 유래되었고, 깔끔하고 명확하게 표현 가능하다는 특징이 있습니다. 몇몇 예시를 들면 다음과 같습니다. ..