본문 바로가기
[C++] C++ Core Guidelines (C++ 핵심 가이드라인) - P.2, P.3 [Philosophy] P.2 ISO 표준 C++ 사용해라 단, 일부 환경에서는 표준 C++ feature 사용이 제한되는 경우가 있다. (예) 항공기 제어 SW 의 경우 동적할당을 피하는 것을 권고하고 있다. P.3 의도를 표현해라 // bad case gsl::index i = 0; while( i < v.size()) { // ... do something with v[i] ... } // better case for(const auto& x : v) { ∕* do something with the value of x *∕ } for(auto& x : v) { ∕* do something with the value of x *∕ } bad case 이유1 v의 element를 활용하겠다는 의도가 없.. 2022. 2. 22.
[C++] C++ Core Guidelines (C++ 핵심 가이드라인) - P.1 [Philosophy] P.1 코드에 생각을 직접적으로 표현해라 class Date{ public: Month month() cosnt; //do int month(); //don't }; int month()의 문제는 메소드를 사용하는 사람에게 추측을 남긴다. 그리고 Month mont()함수에 붙은 const 키워드를 통해 해당 함수는 객체의 상태를 변경하지 않는다는 것을 명시했다. // bad int index = -1; for(int i = 0 ; i < v.size(); ++i) { if(v[i] == val) { index = i ; break; } } // better auto p = find(begin(v), end(v), val); 잘 구현된 라이브러리가 있는 경우 그것을 사용하는 것이 .. 2022. 2. 20.
[C++] 배열의 call by reference C++에서 함수를 호출하는 세가지 방법 1. call by value - 일반적으로 값을 인자로 전달하고 리턴으로 받는 방식 int sum(int a, int b) { return a + b; } sum(1 , 2); 2. call by address - 함수 호출 시 인자로 변수의 주소를 전달하는 방법(리턴 없이 변수 변경) void changeValue(int *a) { *a = 20; } int main() { int temp = 10; changeValue(&temp); std::cout 2022. 1. 10.