11:11 부근에 Something::temp와 Something::getValue의 앞에 &를 붙이는 이유가 뭔가요? (함수 이름은 포인터(주소)가 아닌가요?)
앞에서 '함수이름'은 포인터와 같다라고 배웠습니다. 그래서 실제로 7.9 함수 포인터 강의에서도 int (*ptr_func)() = func; //func는 함수 이름으로 함수포인터를 선언 및 초기화하고 호출 시에도 ptr_func()라고 호출했습니다.그런데 이번 강의 11:11부근에서 교수님께서 멤버함수의 포인터를 가져올 수 있다 말씀하시면서 선언 및 초기화하실 때 int (Something::*fptr1) = &Something::temp;라고 선언 및 초기화를 해주셨는데Something::temp 앞에 주소 연산자 [&]를 붙여주는 이유를 모르겠습니다. 검색해보니 함수포인터 초기화 시 함수이름에 &를 붙이지 않았다고 해도 내부적으로 형변환을 해준다고 하는 것을 알았습니다.실제로 int (Something::*fptr1) = Something::temp;로 주소 연산자 [&]를 붙이지 않았을 때도 에러 없이 정상 작동하는 것을 확인했습니다.그러나 '함수 포인터는 주소다, 포인터다'라고 배운 개념과 다르게 앞에 &를 붙이지 않으면 내부적으로 자동 형변환 된다는게 모순인 것 같은데 &는 주소를 나타내기 위한 연산자라고 배웠고 원래는 &를 명시적으로 함수이름 앞에 붙이는게 맞다(안붙이면 내부적으로 형변환된다)는 것이 말이 안되는 것 같습니다. 그러면 함수 이름은 포인터가 아닌 것이지 않을까요?