Pertanyaan yang diberi tag «function-pointers»

Penunjuk fungsi adalah penunjuk ke fungsi, yang dapat disimpan dalam variabel. Ini memungkinkan pilihan run-time fungsi mana yang akan dijalankan.

10
Memanggil metode kelas C ++ melalui penunjuk fungsi
Bagaimana cara mendapatkan penunjuk fungsi untuk fungsi anggota kelas, dan kemudian memanggil fungsi anggota tersebut dengan objek tertentu? Saya ingin menulis: class Dog : Animal { Dog (); void bark (); } … Dog* pDog = new Dog (); BarkFunction pBark = &Dog::bark; (*pBark) (pDog); … Juga, jika memungkinkan, saya …

8
C ++ lambda dengan captures sebagai penunjuk fungsi
Saya bermain dengan C ++ lambda dan konversi implisitnya ke fungsi pointer. Contoh awal saya menggunakannya sebagai callback untuk fungsi ftw. Ini bekerja seperti yang diharapkan. #include <ftw.h> #include <iostream> using namespace std; int main() { auto callback = [](const char *fpath, const struct stat *sb, int typeflag) -> int …

7
Penunjuk fungsi ke fungsi anggota
Saya ingin menyiapkan penunjuk fungsi sebagai anggota kelas yang merupakan penunjuk ke fungsi lain di kelas yang sama. Alasan mengapa saya melakukan ini rumit. Dalam contoh ini, saya ingin hasilnya menjadi "1" class A { public: int f(); int (*x)(); } int A::f() { return 1; } int main() { …

7
Mentransmisikan penunjuk fungsi ke tipe lain
Katakanlah saya memiliki sebuah fungsi yang menerima sebuah void (*)(void*)function pointer untuk digunakan sebagai callback: void do_stuff(void (*callback_fp)(void*), void* callback_arg); Sekarang, jika saya memiliki fungsi seperti ini: void my_callback_function(struct my_struct* arg); Bisakah saya melakukan ini dengan aman? do_stuff((void (*)(void*)) &my_callback_function, NULL); Saya telah melihat pertanyaan ini dan saya telah melihat …


4
Apa yang ((void (*) ()) buf) (); berarti?
Saya memecahkan tantangan eksploitasi biner di picoCTF dan menemukan potongan kode ini: ((void (*)())buf)(); dimana buf array karakter. Saya memecahkan tantangan tetapi tampaknya tidak mengerti apa yang sebenarnya ia lakukan. Saya melihat ini utas tetapi saya tidak bisa keluar. Apa ((void (*)())buf)();artinya


2
Bagaimana makro lambda membuat lambda?
Saya menemukan kode ini di GitHub tetapi tidak begitu memahaminya: #define lambda(ret_type, _body) ({ ret_type _ _body _; }) Kemudian: int (*max)(int, int) = lambda(int, (int x, int y) { return x > y ? x : y; }); int max_value = max(1, 2); // max_value is 2 Apa yang …
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.