Pytania oznaczone «c++»

81
Wieloliniowe makra preprocesora

Jak zrobić makro preprocesora wieloliniowego? Wiem, jak zrobić jedną linię: #define sqr(X) (X*X) ale potrzebuję czegoś takiego: #define someMacro(X) class X : public otherClass { int foo; void doFoo(); }; Jak to działa? To jest tylko przykład, rzeczywiste makro może być bardzo...

81
Stałe wyliczeniowe zachowują się inaczej w C i C ++

Dlaczego to: #include <stdio.h> #include <limits.h> #include <inttypes.h> int main() { enum en_e { en_e_foo, en_e_bar = UINT64_MAX, }; enum en_e e = en_e_foo; printf("%zu\n", sizeof en_e_foo); printf("%zu\n", sizeof en_e_bar); printf("%zu\n", sizeof e); } drukować 4...

81
Zwiększanie „zamaskowanych” zbiorów bitów

Obecnie jestem w trakcie pisania modułu wyliczającego drzewa, w którym napotkałem następujący problem: Patrzę na zamaskowane bitsety, czyli bity, w których ustawione bity są podzbiorem maski, czyli 0000101z maską 1010101. Chcę tylko zwiększyć zestaw bitów, ale tylko w odniesieniu do bitów...

81
Dlaczego #pragma nie jest raz przyjęta automatycznie?

Jaki jest sens mówienia kompilatorowi, aby włączył plik tylko raz? Czy nie miałoby to domyślnie sensu? Czy jest jakiś powód, aby wielokrotnie dołączać jeden plik? Dlaczego po prostu tego nie założyć? Czy ma to związek z konkretnym sprzętem?

80
Wyjątek c ++: rzucanie std :: string

Chciałbym zgłosić wyjątek, gdy moje metody C ++ napotykają coś dziwnego i nie mogą odzyskać. Czy można rzucać std::stringwskaźnikiem? Oto, czego nie mogłem się doczekać: void Foo::Bar() { if(!QueryPerformanceTimer(&m_baz)) { throw new std::string("it's the end of the world!"); } } void...

80
Jak czytać do EOF z cin w C ++

Koduję program, który czyta dane bezpośrednio z danych wejściowych użytkownika i zastanawiałem się, jak mogę (bez pętli) odczytać wszystkie dane do EOF ze standardowego wejścia. Rozważałem użycie, cin.get( input, '\0' )ale '\0'tak naprawdę nie jest to znak EOF, który czyta tylko do EOF lub '\0',...

80
Jak zaimplementować duży int w C ++

Chciałbym zaimplementować dużą klasę int w C ++ jako ćwiczenie programistyczne - klasę, która może obsługiwać liczby większe niż długie int. Wiem, że istnieje już kilka implementacji open source, ale chciałbym napisać własne. Próbuję wyczuć, jakie jest właściwe podejście. Rozumiem, że ogólna...

80
Dlaczego wyjątki powinny być używane konserwatywnie?

Często widzę / słyszę, jak ludzie mówią, że wyjątków należy używać rzadko, ale nigdy nie wyjaśniam, dlaczego. Chociaż może to być prawda, racjonalne uzasadnienie jest zwykle proste: „nie bez powodu nazywa się to wyjątkiem”, co według mnie wydaje się być rodzajem wyjaśnienia, którego żaden...

80
Inicjalizacja tablicy w C ++

jest tą formą inicjalizacji tablicy ze wszystkimi zerami char myarray[ARRAY_SIZE] = {0} obsługiwane przez wszystkie kompilatory? , jeśli tak, czy istnieje podobna składnia do innych typów? na przykład bool myBoolArray[ARRAY_SIZE] = {false}