«function-pointers» 태그된 질문

함수 포인터는 변수에 저장할 수있는 함수에 대한 포인터입니다. 실행할 함수를 런타임에 선택할 수 있습니다.

11
C에서 함수 포인터는 어떻게 작동합니까?
최근 C에서 함수 포인터에 대한 경험이있었습니다. 그래서 나는 당신 자신의 질문에 답하는 전통을 가지고, 주제에 빠르게 뛰어 들어야하는 사람들을 위해 아주 기본적인 것에 대한 작은 요약을 만들기로 결정했습니다.
1232 c  function-pointers 


21
Java에서 함수 포인터를 대체하는 가장 가까운 것은 무엇입니까?
약 10 줄의 코드가있는 방법이 있습니다. 한 줄의 코드를 변경하는 작은 계산을 제외하고는 정확히 동일한 작업을 수행하는 더 많은 메서드를 만들고 싶습니다. 이것은 한 줄을 대체하기 위해 함수 포인터를 전달하는 데 완벽한 응용 프로그램이지만 Java에는 함수 포인터가 없습니다. 최선의 대안은 무엇입니까?

8
일치하는 함수 포인터를 호출하기 위해 튜플 "풀기"
std::tuple다양한 수의 값 으로 저장하려고 하는데 나중에 저장된 유형과 일치하는 함수 포인터를 호출하기위한 인수로 사용됩니다. 해결하기 위해 고심하고있는 문제를 보여주는 간단한 예를 만들었습니다. #include <iostream> #include <tuple> void f(int a, double b, void* c) { std::cout << a << ":" << b << ":" << c << std::endl; } template …

7
C에서 함수 포인터의 typedef 이해
인수가있는 함수에 대한 포인터를 typedefs 가진 다른 사람들의 코드를 읽을 때 나는 항상 약간 혼란스러워했습니다. 나는 C로 작성된 수치 알고리즘을 이해하려고 시도하는 동안 그러한 정의를 극복하는 데 시간이 걸렸다는 것을 기억합니다. 따라서 함수에 대한 포인터 (유용한 것과하지 말아야 할 것)에 대한 유용한 typedef를 작성하는 방법에 대한 팁과 생각을 공유 할 …

3
함수 포인터 정의가 앰퍼샌드 '&'또는 별표 '*'와 함께 작동하는 이유는 무엇입니까?
다음은 왜 작동합니까? void foo() { cout << "Foo to you too!\n"; }; int main() { void (*p1_foo)() = foo; void (*p2_foo)() = *foo; void (*p3_foo)() = &foo; void (*p4_foo)() = *&foo; void (*p5_foo)() = &*foo; void (*p6_foo)() = **foo; void (*p7_foo)() = **********************foo; (*p1_foo)(); (*p2_foo)(); (*p3_foo)(); (*p4_foo)(); (*p5_foo)(); (*p6_foo)(); …
216 c++  c  function-pointers 

8
람다를 함수 포인터로 전달
람다 함수를 함수 포인터로 전달할 수 있습니까? 그렇다면 컴파일 오류가 발생하여 잘못된 것을 수행해야합니다. 다음 예를 고려하십시오 using DecisionFn = bool(*)(); class Decide { public: Decide(DecisionFn dec) : _dec{dec} {} private: DecisionFn _dec; }; int main() { int x = 5; Decide greaterThanThree{ [x](){ return x > 3; } }; …

13
C는 그렇게 어렵지 않습니다 : void (* (* f []) ()) ()
방금 오늘 사진을 보았고 설명을 부탁드립니다. 여기 그림이 있습니다 : 나는 이것이 혼란스럽고 그러한 코드가 실제로 실용적인지 궁금해했다. 나는 사진을 googled 하고이 reddit 항목 에서 다른 사진을 발견 했으며 여기에 그 사진이 있습니다. 그래서이 "나 선식으로 읽는"것은 무엇인가? 이것이 C 컴파일러가 구문 분석하는 방법입니까? 이 이상한 코드에 대한 간단한 설명이 …

17
Java의 콜백 함수
Java 메소드에서 콜백 함수를 전달하는 방법이 있습니까? 내가 모방하려는 행동은 .Net Delegate가 함수에 전달되는 것입니다. 사람들이 별도의 객체를 만들 것을 제안하는 것을 보았지만 과잉으로 보이지만 때로는 과잉이 유일한 방법이라는 것을 알고 있습니다.

6
한 클래스에서 멤버 함수와 함께 일반 std :: function 객체 사용
한 클래스의 경우 하나의 map저장 std::function객체 에 동일한 클래스의 멤버 함수에 대한 일부 함수 포인터를 저장하려고 합니다. 그러나 나는이 코드로 시작하자마자 실패합니다. class Foo { public: void doSomething() {} void bindFunction() { // ERROR std::function<void(void)> f = &Foo::doSomething; } }; 내가받을 error C2064: term does not evaluate to a function …



11
Java의 함수 포인터
이것은 일반적이고 사소한 것일 수 있지만 구체적인 답변을 찾는 데 어려움을 겪고있는 것 같습니다. C #에는 델리게이트의 개념이 있는데, 이는 C ++의 함수 포인터 개념과 밀접한 관련이 있습니다. Java에도 비슷한 기능이 있습니까? 포인터가 다소 없다는 것을 감안할 때 가장 좋은 방법은 무엇입니까? 그리고 분명히, 우리는 여기서 일등석으로 이야기하고 있습니다.



당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.