Pytania otagowane jako c++

Pytania na temat C ++, skompilowanego, uniwersalnego języka programowania o typie statycznym, o dowolnej formie, z wieloma paradygmatami.


1
Obsługa C ++ 11 dla funkcji list wyższych
Większość języków programowania funkcyjnego (np Common Lisp, Scheme / rakieta, Clojure, Haskell, Scala, Ocaml, SML) obsługuje niektórych funkcji wspólnego wyższego rzędu na listach, takich jak map, filter, takeWhile, dropWhile, foldl, foldr(patrz np Common Lisp, Scheme / rakieta, Clojure obok siebie dokumentacja , dokumentacja Haskell , Scala , OCaml i SML …

4
Czy istnieje inne uzasadnienie użycia abstrakcyjnych klas / interfejsów w C ++ i Javie
Według Herb Suttera należy preferować abstrakcyjne interfejsy (wszystkie czyste funkcje wirtualne) niż abstrakcyjne klasy w C ++, aby oddzielić implementację tak dalece, jak to możliwe. Chociaż osobiście uważam tę zasadę za bardzo przydatną, ostatnio dołączyłem do zespołu z wieloma programistami Java i w kodzie Java ta wytyczna wydaje się nie …

7
Jakie są role singletonów, klas abstrakcyjnych i interfejsów?
Studiuję OOP w C ++ i chociaż jestem świadomy definicji tych 3 pojęć, tak naprawdę nie jestem w stanie zrozumieć, kiedy i jak go używać. Użyjmy tej klasy na przykład: class Person{ private: string name; int age; public: Person(string p1, int p2){this->name=p1; this->age=p2;} ~Person(){} void set_name (string parameter){this->name=parameter;} void set_age …

3
Jakiej wydajności możemy się spodziewać po c_str () std :: string? Zawsze stały czas?
Ostatnio przeprowadzałem kilka potrzebnych optymalizacji. Jedną rzeczą, którą robiłem, jest zmiana niektórych ostringstreams -> sprintfs. Sprint do zestawu std :: strings do tablicy w stylu ac, ala char foo[500]; sprintf(foo, "%s+%s", str1.c_str(), str2.c_str()); Okazuje się, że implementacja std :: string :: c_str () Microsoftu działa w stałym czasie (zwraca tylko …



9
Przepisywanie asemblera IBM + COBOL w C ++
Pracuję jako agent / kierownik wypożyczalni w firmie wynajmującej samochody, która działa w systemie wynajmu napisanym w 1972 roku. Zdecydowałem, że może nadszedł czas na aktualizację. Dla odrobiny tła, oto krótki przykład szaleństwa, z którym mamy do czynienia codziennie w tym programie: Agent wypożyczający musi pamiętać, że drukowanie na jednym …


7
Projekt: Oddzwanianie do klasy nadrzędnej
Podczas modelowania obiektu za pomocą dzieci często dołącza się dzieci za pomocą kompozycji jako członka klasy nadrzędnej. Czasami jednak dzieci muszą powiedzieć rodzicowi coś, muszą wywołać funkcję rodzica. Jak można to osiągnąć za pomocą C ++? Niektóre opcje to: Ustaw klasę nadrzędną na globalną, aby obiekty potomne mogły wywoływać funkcje …


4
Dlaczego sizeof nazywany jest operatorem czasu kompilacji?
Pierwotnie jest to część innego pytania. Dlaczego sizeofnazywany jest operatorem czasu kompilacji? Czy to właściwie nie jest operator czasu wykonywania? A jeśli rzeczywiście jest to operator czasu kompilacji, w jaki sposób pomaga w tworzeniu przenośnego kodu, który działa tak samo na różnych komputerach? Proszę wyjaśnić szczegółowo.
12 c++ 


2
Dlaczego klasa podstawowa musi mieć tutaj wirtualny destruktor, skoro klasa pochodna nie przydziela surowej pamięci dynamicznej?
Poniższy kod powoduje wyciek pamięci: #include <iostream> #include <memory> #include <vector> using namespace std; class base { void virtual initialize_vector() = 0; }; class derived : public base { private: vector<int> vec; public: derived() { initialize_vector(); } void initialize_vector() { for (int i = 0; i < 1000000; i++) { …

1
Używanie klas znajomych do enkapsulacji funkcji prywatnych członków w C ++ - dobra praktyka czy nadużycie?
Zauważyłem więc, że można uniknąć umieszczania funkcji prywatnych w nagłówkach, wykonując coś takiego: // In file pred_list.h: class PredicateList { int somePrivateField; friend class PredicateList_HelperFunctions; public: bool match(); } // In file pred_list.cpp: class PredicateList_HelperFunctions { static bool fullMatch(PredicateList& p) { return p.somePrivateField == 5; // or whatever } } …

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.