@PlantatorCebuli: W C++ musimy wprost napisać, jakiego typu jest funkcja/metoda. Jeśli nie zwracamy nic, dajemy void. Specjalnym przypadkiem są konstruktory/destruktor, które po prostu nic nie mogą zwrócić.

Waiter::~Waiter() // To jest ok, destruktor nie może nic zwracać

Waiter::SetID(int n) // To nie jest ok, SetID nic nie zwraca,
  • Odpowiedz
@C10H15N: drugi przypadek może być "The most vexing parse" o ile value jest typem.

Pomijając powyższe, różnica jest taka, że kompilator nie wykona niejawnego rzutowania:

int d(1.0); // Ok
int e{2.0}; // To się nie skompiluje (dla -std=c++1x)
  • Odpowiedz
@C10H15N: Niestety, język C++ zawiera trochę ciemnych zakamarków. Usilnie próbują być naprawiane, a wychodzi.... jeszcze gorzej.

Jednym z takich zakamarków jest inicjalizacja zmiennych. Jedną zmienną można inicjalizować na baaaardzo wiele sposobów (stanowczo zbyt wiele). U ciebie, oba zapisy są równoważne.

W twoim kodzie masz dwa różne sposoby inicjalizacji, które zrobią dokładnie to samo - wywołają konstruktor przyjmujący typ
b.....n - @C10H15N: Niestety, język C++ zawiera trochę ciemnych zakamarków. Usilnie p...

źródło: comment_lhgh1tCp4yvU1u2DoPKfuq37xdTQ7TL4.gif

Pobierz
  • Odpowiedz
  • 0
Czemu w książce Prata forsowane jest definiowanie funkcji pod funkcja główna main(), a w kazdym innym kursie/książce jest to robione na początku? Ma to jakiś wpływ na wydajność czy zwykla organizacja kodu?
#programowanie #cpp #informatyka
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Canova: kwestia organizacji, pamiętaj tylko ze zanim funkcja jest użyta kompilator musi znać jej deklaracje. Tak szczerze to odradzam Ci książkę Praty bo uczy języka C ubranego w szlafrok C++ i potem będziesz musiał się oduczyć wielu nawyków myślowych.
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
#naukaprogramowania #cpp

Chciałbym odwołać się do właściwości obiektów nazwa1 nazwa2 nazwa3... itd wielokrotnie. W tym celu chciałbym użyć pętli.

W jaki sposób mogę odwołać się do obiektów o nazwie zapisanej w zmiennej string?
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#programowanie #cpp
Mam w klasie pointer do array:

float(*range_)[];
w konstruktorze chcę stworzyć array, np. { 0, 180 } - jak to zrobić?
range_ = new { 0, 180 } daje "expected a type specifier",
_range = new float[2] daje "a value of type float* cannot be assigned to an entity of type float(*)[]"
  • 23
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

mam wstring takiej postaci:

>JAKAŚ NAZWA(12,cośtam,jakiś tekst,2,3)
a więc po prostu mniej-więcej funkcja, może być też np. FUNKCJA() bez argumentu, albo FUN(3) z jednnym, a więc bez przecinka. Zrobiłem dla tego taki regex:

L"^>(\w+)\((\w,?)?\)$"
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

QT Creator - IDE dla C++, Javascript oraz QML

QT Creator jest multiplatformowym IDE stworzonym za pomocą frameworka QT.
Posiada graficzny debugger umożliwiający sprawdzanie w dowolnym momencie stanu programu.
Zapewnia integrację z takimi narzędziami jak Valgrind do sprawdzania wycieków pamięci czy Callgrind sprawdzający ilość wywołań danych funkcji.
Wspiera szereg systemów kontroli wersji takich jak GIT, Subversion czy Perforce.
q.....n - QT Creator - IDE dla C++, Javascript oraz QML

QT Creator jest multiplatf...

źródło: comment_2SSZUtkjzZGAGoDM5QH0BQZQPWam9NKf.jpg

Pobierz
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@zmudeg: Ten VSC który nie potrafi sam siebie zaktualizować?
Czy ten który wywala się po doinstalowaniu kilku pluginów?

@qarmin: Cudo. Pracowałem z nim kilka lat. W zasadzie od początku nauki kodowania (najpierw na Visual Studio Expressach/Community (ta, jeszcze pamiętam erę Expressów), ale szybko odpuściłem) aż do przejścia na komercyjne kodowanie.

Ale mi teraz nostalgię odpaliłeś ( ͡° ͜ʖ ͡°)
  • Odpowiedz
Do jutra ponad 1200 książek w promocji 2 książki w cenie 1 na Helionie. Poniżej wybór polecanych przeze mnie książek z tej promocji z 600 pierwszych pozycji (tyle udało mi się przejrzeć). Promocja z okazji urodzin Heliona trwa do jutra!

Wszystkie tytuły tutaj: LINK

Polecane przeze mnie:

Ogólnie
tomaszs - Do jutra ponad 1200 książek w promocji 2 książki w cenie 1 na Helionie. Pon...

źródło: comment_aaEZjNyxbw5zXHLQC7HH9zmO7oh6Setn.jpg

Pobierz

Z czego 11-latek najlepiej się nauczy programowania?

  • Z kursów wideo 67.6% (48)
  • Z ebooka / książki 21.1% (15)
  • Inne (pisz w komentarzu) 11.3% (8)

Oddanych głosów: 71

  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@tomaszs Jak sobie zrobisz robota np na Raspberry Pi to będzie to możliwe. Z tym, że do wielu rzeczy konieczna jest ścisła kontrola czasowa, której nie da się prosto osiągnąć pod Raspbianem. Programowanie w Pythonie chyba jest zarezerwowane dla funkcji wyższego poziomu np. do AI.
  • Odpowiedz
@CppPolska: nie najgorzej, ale kilka mam nadzieje konstruktywnych uwag:
1. kamera zmienia focus, lepiej wyłączyć autofocus w kamerze, a focus ustawić na stałe bo nie ogląda się tego dobrze
2. mówi się "w cudzysłowie" (a nie "w cudzysłowiu"), "do cudzysłowu" (a nie "cudzysłowiu", "cudzysłowia") "dołączając" (a nie "dołanczając")
  • Odpowiedz
#programowanie #cpp komunikuję ze sobą dwa programy i robi się to stringiem w klasie którą mam z biblioteki. No i żeby nie trzymać w pamięci stringów, zrobiłem sobie po prostu enum class i funkcję zwracającą char o tej wartości i ten string z jednym charem wysyłam. Jak najtaniej przekonwertować enum do string i odwrotnie? Dokładniej chodzi o wide char type i hstring z visual c++ i na razie
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Capt_S xD Premature optimization is the root of all evil.
Przecież parę bajtów nie zrobi żadnej różnicy xDDDD i tak to zostanie opakowane w pakiet TCP/UDP I jakis protokół wyższej warstwy.
  • Odpowiedz
@wmichu: jeżeli nie zapomniałeś przez przypadek 'x' w drugim zapisie, to pierwsze to jest l-value, a drugie to r-value.

jeżeli zapomniałeś 'x', to w przypadku inta to jeden pies. ale na przykład std::vector x(5,5); zrobi vector 5-elementowy z piątkami, a std::vector x{5,5}; zrobi vector 2-elementowy z piątkami.
  • Odpowiedz
Jak to u Was z zachowaniem ciszy / radzeniem sobie z hałasem, w pracy wygląda?
Ja mam dość duży pokój i często przychodzą ludzie z innych działów z kimś popieprzyc, tu ktoś odbiera tel, tu ktoś kogoś przekrzykuja i ciężko się skupić na #programowanie, a po kilku godzinach w halasie jestem tak z-----y że już nie mam siły. Pytam bo nie wiem czy to normalne czy może wszędzie tak
  • 21
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@TheGreatCornholio:
Ja się odcinam i słucham muzyki na słuchawkach.
Nie pomaga do końca bo zawsze znajdzie się ktoś kto p------i, że przecież muszą mieć ze mną kontakt i żebym chociaż jedną słuchawkę wyciągnął... I tak muszę słuchać tego p---------a w stylu:

PRZECENA W SMYKU
  • Odpowiedz
Czy da się dynamicznie tworzyć wątki w #cpp? Moja klasa w polu prywatnym zawiera vector dla wątków - podczas pewnego zdarzenia chciałbym tworzyć wątek z pętla nieskończoną, a później na żądanie mieć możliwość usunięcia takiego wątku. Szukałem już rozwiązań, ale nie widziałem podobnych sytuacji.
#programowanie #programista15k
  • 24
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Parseval: nie pamietam jak wyglada implementacja na Windzie, ale Linux i BSD mają implementację 1:1, co oznacza, że każdy wątek to jeden proces. Oznacza to tyle, że odpalanie wątku jest z reguły bardzo kosztowne (nawet z CoW). Dodatkowo jeśli masz więcej wątków niż ncpu to i tak nie mogą one wszystkie działać współbieżnie i będą się tłuc na schedulerze. A jak do tego dorzucisz nielokalność pamięci, to często może się
  • Odpowiedz
@lionbest: Rozumiem, mówię tylko że przykład był tylko super uproszczony, żeby OP załapał o co chodzi z możliwością ubijania wątku przez ustawienie flagi.
  • Odpowiedz