42 서울에서 드디어 CPP 공부를 하게 됐다. CPP 첫 과제는 CPP module 이다. 00부터 08까지 나눠져있고 C++ 언어를 어떻게 다루는지 단계적으로 배워나갈 수 있는 과제이다.
00 과제를 마치고 평가를 받았다. 첫 번째 평가를 마친 후, 두 번째 평가를 받았는데 mypark 님이 왔다. 슬랙와 주변에서 고수라는 이야기를 많이 들었던 분이라 긴장이 되기도 했지만, 많이 배울 수 있을 것 같아 좋았다.
예상대로 긴장을 많이 했지만, 많은 걸 배울 수 있었다. 정리하자 고고!!
mypark 님과 내가 대화하면서 배운 지식을 정리한다. 물론 잘못된 지식이 있을 수 있다!!
절차 지향 프로그래밍은 절차를 추상화하는데 초점이 맞춰져 있다.
객체 지향 프로그래밍은 추상화된 절차를 객체에게 배분하는데 초점이 맞춰져 있다.
클래스는 구조체보다 자율성을 부여받고 의존성이 낮다. 클래스는 멤버 변수와 멤버 함수를 이용해서 객체 스스로 원하는 기능을 할 수 있다. 구조체는 그런 개념 자체가 존재하지 않는다.
프로그래머의 실수를 줄이기 위해 존재한다. 근데 정확히 어떤 실수를 이야기했었는지 기억이 잘 안난다...
초기화 리스트를 사용하지 않고 초기화를 하게 되면, default 생성자를 호출하고 초기화를 진행하기 때문에 호출 횟수가 늘어난다. 하지만 초기화 리스트를 사용하면 default 생성자를 호출하지 않기 때문에 호출 횟수를 줄일 수 있다.
1번은 이해했는데, 2번은 아직 안배워서 잘 모르겠다. cpp 스터디방에 물어보니, ywee 가 대답해줬다!
네임스페이스는 왠만하면 명시해주자.
함수 내부에서 값이 변하지 않는다면 const 를 사용하자. 이때 const 매개 변수는 const 함수만 호출 가능하다.
c++ 컨벤션 맞출 수 있는 사이트!! c 과제할 땐 norm 이 있어서 컨벤션 걱정이 없었는데, c++ 부턴 norm 이 없어서 어떻게 해야하나 고민했다. mypark 님이 좋은 사이트를 알려주셨다!
https://zed0.co.uk/clang-format-configurator/
이 사이트 사용법은 내가 직접해보고, 정리해야겠다!