플밍/C++ (overview)
-
namespace, (범위지정연산자)플밍/C++ (overview) 2012. 1. 3. 22:44
2006/07/26 01:30 void f(){ ...xx } void f(){ ...yy } int main(){ f(); NAMESPACE에 속한 FUNCTION을 쓰겠다. ( :: means "SCOPE RESOLUTION OPERATOR"[범위지정연산자]) 2. using NAMESPACE :: FUNCTION; using namespace NAMESPACE; 3. 범위지정연산자의 또다른 쓰임새 (* 지역변수는 전역변수의 이름을 가린다.) int top; int main(){ int top; :: top += 1; //바깥에 있는(전역의) top을 1증가시켜라. }
-
매크로, inline플밍/C++ (overview) 2012. 1. 3. 22:43
2006/06/30 04:42 방법 1. 매크로 ============= #define SQUARE(x) ((x) * (x)) std::cout std::cout inline화 되었다. [방법 1. 매크로 방법 2. C++의 inline 키워드] -------------------------------------------------------------- * 함수호출과는 메커니즘이 다르다. (함수 호출은 스택공간도 필요하고, 시간도 걸린다.) 매크로 단점 : 함수 구현 까다롭고, 디버깅 어려움 매크로 장점 : 성능상 이점. (시간, 비용) 방법 2. inline 키워드 =================== inline int SQUARE(int x){...} * 함수 정의 후 앞에 inline만 붙여주면..
-
C++ overloading플밍/C++ (overview) 2012. 1. 3. 22:39
2006/06/30 04:19 C컴파일러는 호출하고자 하는 함수를 찾을때 오로지 함수의 이름이라는 정보만을 가지고 찾기 때문에 정의된 매개 변수의 형태가 달라도 동일한 이름의 함수 정의는 허용하지 않는 것이다. 그렇다면 C++컴파일러는? 함수의 이름뿐 아니라 매개 변수의 정보까지도 참조를 한다. 따라서 C++는 이름이 같고(return type도 같고) 매개 변수의 타입 혹은 개수가 다른 함수들의 정의를 허용한다. 그리고 이를 가리켜 함수 오버로딩(function overloading) 이라 한다. ============================= int function(int x) void function(int x) -> overloading 되었다고 하지 않는다. (컴파일 오류) (리턴타입이 다..