Dlaczego jest taka potrzeba std::reference_wrapper? Gdzie powinien być używany? Czym różni się od prostego wskaźnika? Jak jego wydajność wypada w porównaniu z prostym wskaźnikiem?
Dlaczego jest taka potrzeba std::reference_wrapper? Gdzie powinien być używany? Czym różni się od prostego wskaźnika? Jak jego wydajność wypada w porównaniu z prostym wskaźnikiem?
Poszedłem dziś na rozmowę kwalifikacyjną i zadano mi to interesujące pytanie. Oprócz wycieku pamięci i faktu, że nie ma wirtualnego dtora, dlaczego ten kod się zawiesza? #include <iostream> //besides the obvious mem leak, why does this code crash? class Shape { public: virtual void...
Załóżmy, int *p; int a = 100; p = &a; Co właściwie zrobi poniższy kod i jak? p++; ++p; ++*p; ++(*p); ++*(p); *p++; (*p)++; *(p)++; *++p; *(++p); Wiem, że jest to trochę bałaganiarskie, jeśli chodzi o kodowanie, ale chcę wiedzieć, co się właściwie stanie, gdy będziemy pisać w ten...
W jakich okolicznościach chciałbyś użyć tego rodzaju kodu w języku c ++? void foo(type *&in) {...} void fii() { type *choochoo; ... foo(choochoo); }
Załóżmy, że mam następujący kod: void* my_alloc (size_t size) { return new char [size]; } void my_free (void* ptr) { delete [] ptr; } Czy to jest bezpieczne? A może musi ptrzostać rzucony char*przed usunięciem?
Powiedzmy, że mam klasę z metodą, która zwraca shared_ptr. Jakie są możliwe zalety i wady zwrotu na podstawie referencji lub wartości? Dwie możliwe wskazówki: Wczesne niszczenie obiektów. Jeśli shared_ptrzwrócę odwołanie by (const), licznik odwołań nie zostanie zwiększony, więc ponoszę...
Niedawno zdecydowałem, że muszę w końcu nauczyć się C / C ++ i jest jedna rzecz, której nie rozumiem, jeśli chodzi o wskaźniki, a dokładniej ich definicję. A co z tymi przykładami: int* test; int *test; int * test; int* test,test2; int *test,test2; int * test,test2; Otóż, według mojego...
Słyszałem, auto_ptrże w C ++ 11 jest przestarzały. Jaki jest tego powód? Chciałbym również poznać różnicę między auto_ptri shared_ptr.
Próbuję zrozumieć, jak std::unique_ptrdziała i do tego znalazłem ten dokument. Autor zaczyna od następującego przykładu: #include <utility> //declarations of unique_ptr using std::unique_ptr; // default construction unique_ptr<int> up; //creates an empty object // initialize with an...
Mam problem ze zrozumieniem użyteczności wskaźników funkcji. Myślę, że w niektórych przypadkach może się to przydać (w końcu istnieją), ale nie przychodzi mi do głowy przypadek, w którym lepiej lub nieuniknione jest użycie wskaźnika funkcji. Czy możesz podać przykład dobrego wykorzystania...
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 =...
Jak utworzyć słownik, w którym mogę przechowywać funkcje? Dzięki. Mam około 30+ funkcji, które mogą być wykonane przez użytkownika. Chcę móc wykonać tę funkcję w ten sposób: private void functionName(arg1, arg2, arg3) { // code } dictionaryName.add("doSomething", functionName);...
Jaka jest najlepsza metoda przekazywania a shared_ptrtypu pochodnego do funkcji, która przyjmuje shared_ptrtyp podstawowy? Generalnie przekazuję shared_ptrje jako odniesienie, aby uniknąć niepotrzebnych kopii: int foo(const shared_ptr<bar>& ptr); ale to nie działa, jeśli spróbuję...
W obecnym stanie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi będą poparte faktami, referencjami lub ekspertyzą, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz, że to...
Kontekst: Próbuję zawinąć głowę wokół wskazówek, widzieliśmy je kilka tygodni temu w szkole i podczas dzisiejszych ćwiczeń wpadłem na głupiego? problem, może to być dla ciebie bardzo proste, ale mam niewielkie doświadczenie w programowaniu. Widziałem w SO sporo pytań dotyczących usuwania...
Czy istnieje sposób na ustalenie (oczywiście programowo), czy dany wskaźnik jest „prawidłowy”? Sprawdzanie wartości NULL jest łatwe, ale co z takimi rzeczami, jak 0x00001234? Podczas próby wyłuskiwania tego rodzaju wskaźnika następuje wyjątek / awaria. Preferowana jest metoda wieloplatformowa,...
Czytałem już termin „gruby wskaźnik” w kilku kontekstach, ale nie jestem pewien, co dokładnie oznacza i kiedy jest używany w Rust. Wskaźnik wydaje się być dwa razy większy niż normalny wskaźnik, ale nie rozumiem dlaczego. Wydaje się również, że ma to coś wspólnego z obiektami cech....
Pisałem takie rzeczy jak char *x=NULL; przy założeniu, że char *x=2; utworzy charwskaźnik do adresu 2. Ale w samouczku programowania GNU C jest napisane, że int *my_int_ptr = 2;przechowuje wartość całkowitą 2do dowolnego losowego adresu, w my_int_ptrktórym jest...
Widziałem, że zakres zwraca klucz i „kopię” wartości. Czy istnieje sposób, aby ten zakres zwrócił adres przedmiotu? Przykład package main import "fmt" type MyType struct { field string } func main() { var array [10]MyType for _, e := range array { e.field = "foo" } for _, e := range...
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ć...