CS/C++

C++ 공부 섹션2 : 홍정모의 따배씨쁠쁠

샤아이인 2022. 1. 16.

 

내돈내고 내가 공부한것을 올리며, 시간을 들여 배운과정을 복습하기보다는 간결히 공부한 흔적은 남긴다 하고 생각하고 써갈 예정입니다. 모든 내용을 이곳에 올릴수는 없으며, 그중 기억남은 몇가지 내용 위주만 올리겠다.

1) 섹션2

◆ 섹션2의 내용또한 어렵지 않아 약간은 긴장이 풀린 상태로 공부하게 되었다. 이전 C에서 거의 들었던 내용이라 새로운 지식이 아니다 보니 처음배울때보다는 긴장도가 조금 풀린것 같다. 하지만 이와 더불어 이미 아는것도 다시 들었을때 새로운 깨달음을 얻을수 있으며, 다시한번 생각해보는 과정 그 자체가 공부의 길임을 잘 알고 있기에 집중하려 노력했다.

이번 강의에서는 특히 초기화의 3가지 방식이 인상깊었던 단원인 것 같다.

 

 이전 C에서 도 배웠던 내용이지만 나는 잘 사용해본적 없었던 내용을 다시 복습할수 있었다.

출처 - 홍정모의 따배씨쁠쁠 강의
float형 숫자 맨 뒤에 f를 추가해주는대, 이로인해 float형임을 명시해줄 수 있다.
만약 f를 빼버린다면 3.141592는 자동적으로 double형 이 되어버리고,
이로인해 float형 변수인 fValue에 대입할려 하기에 오류가 나는 것 이다.

 

 초기화의 3가지 방식 또한 매우 새로웠다.

출처 - 홍정모의 따배씨쁠쁠 강의

이전까지의 C에서는 보통 초기화를

int num = 10; //copy initialization

과 같은 형태(copy initialization)로 진행해 왔다.

하지만 C++에서는 위의 방식에 더불어 direct initialization과 uniform initialization방식이 공존한다.

 

copy와 direct 방식은 data type이 맞지않은경우 error만 띄우고 compile은 해주는대, 이에 반해 좀더 엄격한 uniform방식은 경고가 뜨고 compile되지 않는다.

 

고정너비상수 는 운영체제나, 각 컴파일러마다 달라지는 자료형의 크기를 일정하게 유지시키는 것 이다.

출처 - 홍정모의 따배씨쁠쁠 강의

 

 Bool 에 대해서도 배웠는대 사실 C에서도 false, true는 있었지만 이를 문자처럼 쓰기위해서는 다른 방법들이 필요했다(메크로를 쓴다거나 등등) 하지만 C++에서는 좀더 편하게 이를 사용할수 있었다.

출처 - 홍정모의 따배씨쁠쁠 강의
또한 그냥 cout으로 출력시 1과 0 으로 출력되는 거짓과 참을 std::boolalpha를 선언하여 문자형태로 바꾸어 출력해줄 수 있었다.

 

또한 cast에 대하여도 배웠다. C의 방식과 C++방식의 cast 형태가 조금은 다른것이 특징이였다.

출처 - 홍정모의 따배씨쁠쁠 강의

보통 C언어 에서는 casting을 할때 (char)65 라고 해주는대 C++에서는 char(65)와 같은 형태로 casting을 해주었다. 또한 static_cast에 대해서도 확인해 볼수 있었다.

 

 이번단원에서 또하나의 큰 궁금증이 해결되었다 이전부터 '\n'과 endl의 차이점이 궁금했는대 오늘 이를 알려주셨다.

출처 - 홍정모의 따배씨쁠쁠 강의

 runtime과 compiletime의 차이에 대해서도 배웠는대 이는 이미 익히 경험해본 내용이라 잘 알고 있었다.

출처 - 홍정모의 따배씨쁠쁠 강의

하지만 constexpr이라는 자료형은 오늘 처음 보는 것 이였다. compile time에서 완전히 값이 결정 되있어야만 하는 변수를 말한다.

댓글