본문 바로가기

IT책/Effective c++

2항목 #define쓸려고할때 const, enum, inline을 떠올려라

매크로를 쓰면 매크로로 인해 에러가나면 그 에러를 찾기 힘들다.

ex> #define TEST 1.653 이라고 정의했는데 에러가 나면 에러에는 TEST매크로는 안보이고 1.653이라는 상수만 떠버린다

그리고 매크로를 사용하면 그 매크로를 사용할때마다 사본을 많이만든다 const로 선언해서 사용하자

class안에서는 static을 사용하면 메모리를 아낄수있다.

class test{ static const int _test = 5 } ;

 

요런식으로

 

값을 변경하는것과 어느 변수의 주소를 참조하는것 조차 거부하고싶으면 enum을 사용하면된다.

 

 

*이것만은 잊지 말자

단순한 상수를 쓸 때는, #define보다 const 객체 혹은 enum을 우선 생각합시다.

함수처럼 쓰이는 매크로를 만ㄴ들려면 #define매크로보다 인라인함수를우선해서 생각합시다.