본문 바로가기
기타 프로그래밍

[C++] C++ Core Guidelines (C++ 핵심 가이드라인) - P.1

by 나무꾼 2022. 2. 20.

[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);

잘 구현된 라이브러리가 있는 경우 그것을 사용하는 것이 더 바람직하다.

for 문과 index를 직접 사용하기 보다 find 함수를 사용하여 구현한다.

Guidlines : Enfocement

1. 클래스의 맴버함수를 확인하여 객체를 변경하지 않는 맴버함수에 cosnt를 붙인다.

2. int, double 등의 기본형 외 Month, Speed 등과 같이 의미를 알 수 있는 자료형을 만들어 사용한다.
3. standard 라이브러리를 활용하도록 노력한다.

 

 

댓글