본문 바로가기

programing/C++56

함수 객체 - 장점 > 상태를 가질 수 있음 > 함수 객체는 자신만의 타입을 가짐( 객체 타입 ) > 특정 상황에서 함수 객체는 함수보다 빠름 => 임의 함수를 다른 함수에 인자로 전달한 후 사용할 때 일반함수는 인라인화 될 수 없지만 객체는 인라인화 될 수 있다. - 구조 class 함수객체클래스이름{ public: 반환타입 operator()( 인자 ) { } }; 2015. 6. 8.
함수 포인터 - 함수를 가리키는 포인터 - 리턴타입 (* 변수명)(인수 목록) int func(int a); int (*pf)(int); // func()를 가리킬 수 있는 함수 포인터 변수 //변수명의 괄호를 빼버리면 정수형 포인터를 리턴하는 함수가 됨 void func(int a, double b); -> void (*pf)(int, double); char *func(char *a, int b); -> char *(*pf)(char *, int); void func(void); -> void (*pf)(void); // 이렇게 하고 나서 pf = func; // 대입 (*pf)(2); // 호출 (원칙) pf(2); // 간략 호출 (지원안 할 가능성 있음) - 함수 포인터 타입 > 포인터 타입 안맞은채 대입시.. 2015. 6. 8.
가변 인수 함수 - 개략적인 구조 void VarFunc(int Fix, ...) { va_list ap; va_start(ap,Fix); while (모든 인수를 다 읽을 때까지) { va_arg(ap,인수타입); } va_end(ap); } - 사용되는 함수들은 매크로 함수로 되어 있음 typedef char * va_list; #define _crt_va_start(ap,v) ( ap = (va_list)_ADDRESSOF(v) + _INTSIZEOF(v) ) #define _crt_va_arg(ap,t) ( *(t *)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)) ) #define _crt_va_end(ap) ( ap = (va_list)0 ) #define va_start _crt_va.. 2015. 6. 8.
[펌] Modern C++ 프로그래머를 위한 CPP11/14 핵심 http://www.slideshare.net/jacking/modern-c-cpp11-14 Modern C++ 프로그래머를 위한 CPP11/14 핵심 from 흥배 최 2015. 6. 3.