Pytania otagowane jako function-pointers

Wskaźnik funkcji to wskaźnik do funkcji, która może być przechowywana w zmiennej. Umożliwia wybór funkcji do uruchomienia w czasie wykonywania.

11
Jak działają wskaźniki funkcji w C?
Miałem ostatnio trochę doświadczenia ze wskaźnikami funkcji w C. Kontynuując tradycję odpowiadania na twoje pytania, postanowiłem zrobić krótkie podsumowanie podstawowych informacji dla tych, którzy potrzebują szybkiej analizy tego tematu.
1232 c  function-pointers 


21
Jaki jest najbliższy substytut wskaźnika funkcji w Javie?
Mam metodę, która ma około dziesięciu wierszy kodu. Chcę stworzyć więcej metod, które robią dokładnie to samo, z wyjątkiem niewielkich obliczeń, które zmienią jeden wiersz kodu. Jest to idealna aplikacja do przekazywania wskaźnika funkcji w celu zastąpienia tej jednej linii, ale Java nie ma wskaźników funkcji. Jaka jest moja najlepsza …

8
„Rozpakowywanie” krotki w celu wywołania odpowiedniego wskaźnika funkcji
Próbuję zapisać w std::tuplezmiennej liczbie wartości, które później zostaną użyte jako argumenty wywołania wskaźnika funkcji, który pasuje do przechowywanych typów. Stworzyłem uproszczony przykład pokazujący problem, który staram się rozwiązać: #include <iostream> #include <tuple> void f(int a, double b, void* c) { std::cout << a << ":" << b << ":" …

7
Zrozumienie typedefs dla wskaźników funkcji w C
Zawsze byłem trochę zakłopotany, kiedy czytałem kod innych ludzi, który miał typefefy dla wskaźników do funkcji z argumentami. Pamiętam, że zajęło mi trochę czasu, aby przejść do takiej definicji, próbując zrozumieć algorytm numeryczny napisany w C jakiś czas temu. Czy mógłbyś zatem podzielić się swoimi wskazówkami i przemyśleniami na temat …

3
Dlaczego definicje wskaźników funkcji działają z dowolną liczbą znaków „&” lub gwiazdek „*”?
Dlaczego następujące działania? 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
Przekazywanie przechwytywania lambda jako wskaźnika funkcji
Czy można przekazać funkcję lambda jako wskaźnik funkcji? Jeśli tak, to muszę robić coś niepoprawnie, ponieważ pojawia się błąd kompilacji. Rozważ następujący przykład using DecisionFn = bool(*)(); class Decide { public: Decide(DecisionFn dec) : _dec{dec} {} private: DecisionFn _dec; }; int main() { int x = 5; Decide greaterThanThree{ [x](){ …

13
C nie jest takie trudne: void (* (* f []) ()) ()
Właśnie widziałem dziś zdjęcie i myślę, że doceniłbym wyjaśnienia. Oto zdjęcie: Uznałem to za mylące i zastanawiałem się, czy takie kody są kiedykolwiek praktyczne. Przejrzałem zdjęcie i znalazłem inne zdjęcie w tym wpisie reddit, a oto to zdjęcie: Czy to „duchowe czytanie” jest czymś ważnym? Czy tak analizują kompilatory C? …

17
Funkcje zwrotne w Javie
Czy istnieje sposób przekazania funkcji wywołania zwrotnego w metodzie Java? Zachowanie, które próbuję naśladować, to przekazywanie delegata .Net do funkcji. Widziałem, jak ludzie sugerowali stworzenie oddzielnego obiektu, ale wydaje się to przesada, jednak jestem świadomy, że czasami przesada jest jedynym sposobem na zrobienie czegoś.

6
Używanie ogólnych obiektów std :: function z funkcjami składowymi w jednej klasie
Dla jednej klasy chcę przechowywać niektóre wskaźniki funkcji do funkcji składowych tej samej klasy w jednej mapprzechowującej std::functionobiekty. Ale zawodzę na samym początku z tym kodem: class Foo { public: void doSomething() {} void bindFunction() { // ERROR std::function<void(void)> f = &Foo::doSomething; } }; Otrzymuję error C2064: term does not …



11
Wskaźniki funkcji w Javie
Może to być coś powszechnego i trywialnego, ale wydaje mi się, że mam problem ze znalezieniem konkretnej odpowiedzi. W C # istnieje koncepcja delegatów, która jest silnie związana z ideą wskaźników funkcji z C ++. Czy w Javie jest podobna funkcjonalność? Biorąc pod uwagę, że wskaźniki są nieco nieobecne, jaki …



Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.