함수포인터
-
클래스 메서드와 데이터 멤버에 대한 포인터@ 16. 1 ~ 17. 1/C++ 2015. 11. 18. 19:26
함수포인터는 C++ 에서는 typedef로 선언해서 해당함수의 파라미터와 리턴타입에 호환되는 함수를 이용하면되는데.. typedef bool(*Func)(int, int); //Func 타입을 선언해서 두개의 int 파라미터와 bool타입 리턴값을 가지는 함수 포인터를 표현 Func func1; //선언한뒤에 bool test(int num1, int num2) {} //이런식의 함수가 있다면 func1 = test; 또는 포인터이니까 func1 = &test로 하면된다. C++11에서는 타입 에일리어스 기능이 있어 typedef bool(*Func)(int, int); 이걸 이렇게 using Func = bool(*)(int, int); 이런식으로 표현이 되며 Func func1; //똑같이 사용이 가..
-
void 형 포인터 및 함수 포인터(3)@ 16. 1 ~ 17. 1/C++ 2013. 1. 31. 21:37
void형 포인터란 모든형(char int double 등)의 주소를 저장할 수 있는 포인터이다. char형과 int형 주소 모두를 저장해야하는 경우라면..void포인터를 사용하여 저장해야한다. int num=1; char a='a'; void *vp; vp=# vp=&a; 이렇게 가능은 한데..즉 주소를 저장할 수는 있지만.. *vp 처럼 주소가 가지고 있는 값에는 접근을 못한다. 어떤 형태로 접근해야할지 모르니까...근데 형변환을 하면 가능해진다. 즉, *(int*)vp; *(char*)vp 이런식으로.. 함수포인터란.. 함수의 시작주소를 저장할 수 있는 포인터 변수이다. 모든 함수의 이름은 그 함수가 시작주소이다.. 함수의 원형을 알면..함수 포인터를 만들수 있다. void main(void..
-
비트연산자, 함수포인터, ctime@ 16. 1 ~ 17. 1/C++ 2013. 1. 27. 02:02
비트연산자 이항연산자를 이용하여(변수에 대입한 정수도 가능하다.) 하면된다. 반드시 정수여야 한다. 실수는 안된다! 예) int num1 = 2 // 0000 0000 0000 0010 int num2 = 6 // 0000 0000 0000 0110 이렇게 있으면 비트연산자를 이용하여 & 이것은..곱하기로 생각하면된다 ! 난 쉽게 이해하려 ...없다 그냥 곱하기로 이해했다..ㅠ 0000 0000 0000 0010 & 0000 0000 0000 0110 ---------------------- 0000 0000 0000 0010 이렇게 된다는 것! | 이것은 음..더하기의 + 세로 모양하고 같아서 이걸보면 더하는거야..라고 이해함..:) 좀 더 쉽게 이해되었음 근데 1+1 도 1이라는거..; 0000 00..