본문 바로가기

IT/C++(CPP)33

CPP 초급 강좌 8. C++ auto, decltype CPP 초급 강좌 8. C++ auto, decltype auto? c++11 이후로 사용 시, 데이터 타입 추론기능을 가진 키워드, 초기화 값에 따라 알아서 데이터 타입을 정해주는 키워드 예제를 봅시다. int a[7] = { 1,2,3,4,5,6,7 }; int b = a[0]; 이런 코드를 가 있습니다. 만약 a의 타입을 float로 바꾼다고 하면 b역시 float로 바꾸어야겠죠. 아래와 같이 수정할 필요가 있을 것입니다. float a[7] = { 1,2,3,4,5,6,7 }; float b = a[0]; 그런데 a의 형식이 자주 바뀐다면, b 형식 또한 그 수만큼 바꿔줘야 하는데, 이럴때 auto를 사용하면 좋습니다. auto 사용 double a[7] = { 1,2,3,4,5,6,7 }; au.. 2020. 10. 12.
CPP 초급 강좌 7. C++ 일관된 초기화(uniform initialization) CPP 초급 강좌 7. C++ 일관된 초기화(uniform initialization) c++11 에서 도입된 uniform initalization 일관된 초기화란 무엇이고 왜 필요한 것일까요? 일관된 초기화 int n1 = 10;//1번 int n2 = { 10 };//2번 일관된 초기화를 모르시는 분들은 1번과 같은 초기화 코드를 많이 이용하셨을 겁니다. 2번과 같이 표현하는 방식을 일관된 초기화라고 칭합니다. 마치 변수나 구조체를 초기화하는 코드와 유사하죠. 이전 코드 초기화 방식을 보면 struct Point { int x, y; }; int main() { int n1 = 0; int n2(0); int x[10] = { 1,2,3,4,5,6,7,8,9,10 }; Point p = { 1, 1.. 2020. 10. 8.
CPP 초급 강좌 6. C++ 변수의 특징 CPP 초급 강좌 6. C++ 변수의 특징 이번에는 변수의 특징, 그리고 c++11 상위 버전에서 가능한 특징 등을 공부해보자. 먼저 변수? 변수(variable)란 데이터(data)를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간을 의미합니다. 기본형 void – – 문자형 (signed) char 1 byte -128 ~ 127 unsigned char 1 byte 0 ~ 255 wchar_t 2 byte 0 ~ 65,535 정수형 bool 1 byte 0 ~ 1 (signed) short (int) 2 byte -32,768 ~ 32,767 unsigned short (int) 4 byte 0 ~ 65,535 (signed) int 4 byte -2,147,483,648 ~ 2,147,.. 2020. 10. 7.
CPP 초급 강좌 5. C++ Manipulator, Iomanipulator, 조정자 CPP 초급 강좌 5. C++ Manipulator, Iomanipulator, 조정자 이번에는 Manipulator 조정자에 대하여 적어보겠습니다. 조정자란 일단 '입출력의 형태를 지정' 하는데 사용한다고 보시면 됩니다. 아래 예제를 통해 좀 더 알아보아요 예제 1 #include int main() { int n = 10; std::cout 2020. 10. 5.
CPP 초급 강좌 4. C++ 표준입출력 CPP 초급 강좌 4. C++ 표준입출력 이번에는 CPP의 표준입출력 관련해서 적어보겠습니다. 먼저 기존 C코드를 보고 해당 코드를 CPP 코드화 하는 방향으로 진행해보겠습니다. 예제 1번은 c 코드입니다. c -> cpp 코드화를 위해서 printf -> cout 으로 대쳐해야합니다. cout은 c에서 out출력한다란고 생각하시면 됩니다. 7번 라인을 수정해 보겠습니다. printf("숫자를 입력하세요 ? >> "); -> std::cout 2020. 10. 2.
CPP 초급 강좌 3. C++ 해더 파일에 대해서 header files CPP 초급 강좌 3. C++ 해더 파일에 대해서 header files c에서 cpp로 오면서 변경, 추가된 헤더 관련 이야기를 해보겠습니다. 이런 규칙으로 변경되었다 정도로 봐주세요 먼저 아래 예제를 보면 min 을 사용하기 위해서 2번 라인에 #include 을 하용하였습니다. 그리고 printf 를 사용하기 위해서 3번 라인의 #include 를 사용하였습니다. 두 include의 차이점은 확장자의 유무입니다. C++헤더 파일을 특징 헤더 파일의 확장자를 사용하지 않습니다. .h~~ 등등 그러면 3번 라인 #include 이건 뭐죠 라고 생각하실수 있죠? c++ 용 해더 파일이 따로 존재합니다. stdio.h 에서 .h 확장자를 제거하고 앞에 c를 붙입니다.(c언어에서 사용했다는 의미) cstdi.. 2020. 9. 25.
CPP 초급 강좌 2. std namespace / C++ CPP 초급 강좌 2. std namespace / C++ std namespace? C++을 설계할 때는 C++ 표준 라이브러리(Ex. cin, cout)의 모든 식별자를 직접 사용할 수 있었습니다. 이럴 경우 이후로 사용자가 직접 만든 식별자 이름과 충돌할 수도 있고, 또 표준 라이브러리에 도입된 새로운 기능이 충돌할 수 있으므로 한 버전의 C++에서 컴파일될 프로그램이 향후 버전의 C++에서 컴파일되지 않을 수 있습니다. 그래서 C++은 표준 라이브러리의 모든 기능을 std namespace라는 특별한 영역으로 이동시켰습니다. 예제를 보면서 설명해보겠습니다. 예제 1과 같이, 헤더의 min 함수를 호출하려고 한다고 합시다. 위와 같이 코딩하고 빌드 해보면 에러입니다. min 함수를 찾을 수 없습니다.. 2020. 9. 23.
CPP 초급 강좌 1. namespace 네임스페이스 개념, 사용법 / C++ CPP 초급 강좌 1. namespace 네임스페이스 개념, 사용방법 / C++ 아래 내용은 연산자와 제어문, 함수, 배열과포인터, 구조체등의 계념을 이해하는 개발자를 위한 내용입니다. namespace 란 무엇일까요? 왜 필요한 걸까요? 그럼 먼저 아래 namespace 가 필요한 경우를 살펴봅시다. 예제 1번과 같이 Screen, Audio, System을 초기화해주는 함수를 각각 만들려고 합니다. 셋 모두를 init() 이라는 함수명으로 만들고 싶은데, 같은 함수명은 만들 수가 없죠. 함수 이름을 다른 이름으로 가야 할 듯한데, 이번 경우에는 namespace 한 것을 이용해서 회피해봅시다. @ namespace 의 필요성 1. 프로그램은 소규모로 제작할 수도 있지만, 대규모 프로젝트들도 많습니다... 2020. 9. 22.
C++ 11, 14, 17, 20 이 무엇을 의미하나요? 도움이 되는 사이트들 링크 C++ 11, 14, 17, 20 이 무엇을 의미하나요? 도움이 되는 사이트들 링크 C++ 를 공부하다 보면, C++ 98, C++ 14, C++ 17, C++ 20등의단어들을 접하실 수 있는데, 이게 무슨 의미인지 정확히 모르시는 분이 있을 거 같아서 정리해 보려 합니다. 뒤에 붙은 숫자들은 표준화된 년도입니다. 뒤에 붙은 숫자를 더 정확히 표기하면, C++98/03, C++11/14, C++17, C++20/23 으로도 표기할 수 있습니다. 아래에 관련하여 좀 더 자세한 정보들을 적어볼게요. 어려운 내용이 많으니 아.. 뭐 이렇구나 정도 하면서 살짝 읽어 보시면 될듯합니다. C++98/03 1998년에 표준화되었고, 2003년도에 수정 적용된 내용, C++ 최초의 표준화, 우리가 일반적으로 C++ 코.. 2020. 9. 21.