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
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.
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
Kiedy i jak używasz funkcji zwrotnej w C ++? EDYCJA: Chciałbym zobaczyć prosty przykład napisania funkcji
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...
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...
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ę...
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)() =...
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...
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ś...
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...
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
Jak należy używać tablicy wskaźników funkcji w C? Jak mogę je
Znalazłem Ckod, który wyświetla od 1 do 1000 bez pętli i warunków warunkowych : ale nie rozumiem, jak to działa. Czy ktoś może przejść przez kod i wyjaśnić każdą linię? #include <stdio.h> #include <stdlib.h> void main(int j) { printf("%d\n", j); (&main + (&exit -...
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...
Czytałem, że konwersja wskaźnika funkcji na wskaźnik danych i odwrotnie działa na większości platform, ale nie gwarantuje, że zadziała. Dlaczego tak się dzieje? Czy oba nie powinny być po prostu adresami do pamięci głównej, a zatem powinny być kompatybilne?
Pytanie jest następujące: rozważ ten fragment kodu: #include <iostream> class aClass { public: void aTest(int a, int b) { printf("%d + %d = %d", a, b, a + b); } }; void function1(void (*function)(int, int)) { function(1, 1); } void test(int a,int b) { printf("%d - %d = %d", a , b ,...
Jak uzyskać wskaźnik funkcji dla funkcji składowej klasy, a następnie wywołać tę funkcję składową z określonym obiektem? Chciałbym napisać: class Dog : Animal { Dog (); void bark (); } … Dog* pDog = new Dog (); BarkFunction pBark = &Dog::bark; (*pBark) (pDog); … Ponadto, jeśli to możliwe,...
Bawiłem się lambdami C ++ i ich niejawną konwersją na wskaźniki funkcji. Moim początkowym przykładem było użycie ich jako wywołania zwrotnego dla funkcji ftw. Działa to zgodnie z oczekiwaniami. #include <ftw.h> #include <iostream> using namespace std; int main() { auto callback =...
Chciałbym ustawić wskaźnik funkcji jako element członkowski klasy, który jest wskaźnikiem do innej funkcji w tej samej klasie. Powody, dla których to robię, są skomplikowane. W tym przykładzie chciałbym, aby wynik miał wartość „1” class A { public: int f(); int (*x)(); } int A::f() {...
Powiedzmy, że mam funkcję, która akceptuje void (*)(void*)wskaźnik funkcji do użycia jako wywołanie zwrotne: void do_stuff(void (*callback_fp)(void*), void* callback_arg); Teraz, jeśli mam taką funkcję: void my_callback_function(struct my_struct* arg); Czy mogę to zrobić...
Nie mogę tego rozgryźć: int main() { int (*) (int *) = 5; return 0; } Powyższe przypisanie kompiluje się z g ++ c ++ 11. Wiem, że int (*) (int *)jest to wskaźnik do funkcji, która przyjmuje (int *)argument jako argument i zwraca wartość int, ale nie rozumiem, jak można to zrównać do 5. Na...