#cpp Mam pytanie. Chodzi o C++.

Załóżmy, że mam klasę, która dynamicznie alokuje tablicę obiektów innej klasy, np.

class A {
public:
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Majater_Jankes używanie new zawsze kończy się tego typu rozterkami. Nowy C++ znalazł na to rozwiązanie i praktycznie nie trzeba już tego keyworda używać. Najprostszy przykład to używanie std::makeunique zamiast inicjalizacji std::uniqueptr gołym wskaźnikiem.
  • Odpowiedz
Niby dlaczego?


@Tytanowy: Bo świat nie składa się tylko z tytanowych programistów i zbyt wiele w życiu czasu straciłem na szukani i poprawianiu kodu który ktoś kiedyś wrzucił nie przewidując, że w konstruktorze czy innej metodzie ktoś gdzieś kiedyś może rzucić wyjątkiem. Mógłbym ci godzinami opowiadać o odwoływaniu się po rzucaniu wyjątkiem z konstruktora do nie (w pełni) zainicjalizowanych czy chociażby najprostrzych z możliwych błędów do znalezienia czyli "pure virtual method call".
  • Odpowiedz
@KonwersatorZabytkow:
bez angielskiego nawet się za to nie bierz bo:
- ten język jest rozbudowany,
- większość rzeczy można zrobić na n sposobów,
- w angielskich źródłach prędzej będziesz miał wytłumaczone dlaczego sposobu x użyć w przypadku y,
- dlaczego robi się coś w 2025 w ten sposób a nie np. tak jak w książce sprzed 15 czy
  • Odpowiedz
#embedded #cpp

podszkoliłbym się z tcp/ip, żeby ogarniać z tego dosłownie cokolwiek, w sumie to konfiguracja client / server itd.
macie jakieś materiały z internetów?
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@MajkelKk Zawsze miałem wrażenie, że brakuje materiałów dla początkujących z tego obszaru. To zagadnienie nie jest skomplikowane, ale żeby mieć pełne zrozumienie, potrzeba trochę wiedzy ze stacku sieciowego i tego jak działa sieć.
  • Odpowiedz
Mityczna bariera 10k na łapę przebita przy okazji rocznej podwyżki... i to na UoP'ie po 3.5 roku w branży #pracait. Sama kwota nie zadowala mnie jakoś bardzo, ale trochę #chwalesie, bo ponad 3 lata temu podjąłem dość spontaniczną jak na mnie decyzję o przejściu z #programowanie #plc do #cpp. Miałem dość tych delegacji i spania po obskurnych hotelach, wracania
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Chociaż patrząc na to w jakim stanie jest branża może to nie ostatnie moje przebranżowienie? ( ͡º ͜ʖ͡º)


@Homofobiczny_Czarodziej: Jeszcze wrócisz do programowania PLCków ( ͡° ͜ʖ ͡°) A generalnie to gratki, mało kto zostaje w tym pięknym zawodzie okupionym zwykle życiem szczura pokładowego, a jak zostaje to zwykle jest nieszczęśliwy aż do 40-stki, gdzie godzi się z własnym losem.

Ja
  • Odpowiedz
@Homofobiczny_Czarodziej większość po AiRze jakich znam jest średnio zadowolonych i raczej skręca w stronę IT właśnie przez te nieszczęsne delegacje. Nie ma się co dziwić - porównując te wyjazdy + babranie się w brudnych szafach, a kawka z rana przy kompie na HO.
  • Odpowiedz
mam w #cpp taki kod:

int GetValue(std::string section, std::string key, int def) {
if (!ini.has(section)) return def;
if (!ini[section].has(key)) return def;
std::string& val = ini[section][key];
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mamniciwszystko:
W C++ możesz osiągnąć podobny efekt jak w Javie przy użyciu szablonów (ang. templates). Szablony pozwalają na definiowanie funkcji, które mogą działać z różnymi typami danych. Możesz stworzyć ogólną funkcję GetValue, która przyjmuje typ jako parametr szablonu. Oto jak mógłby wyglądać Twój kod:

#include <string>
#include <sstream>
#include
  • Odpowiedz
kurdę, tak jak lubię code studio tak zaczyna mnie wkurzać jak nie zawsze radzi sobie ze znajdywaniem nagłówków/podpowiadaniem.
poleci ktoś jakieś dobre IDE na linuksa? ważne żeby dobrze współpracowało z cmake/copilotem
#programowanie #linux #cpp
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

ucz sie na czyms prostym, bez kopilota :p


@ka-lol: kurde, co wy macie z tymi studentami? xD programuję od ponad 20 lat. copilota lubię bo ułatwia proste taski, piszę "zrób xyz" i nie musze tracić czasu i grzebać w dokumentacji tylko podpowiada kod, a ja sprawdzam czy jest ok. nic więcej nic mniej.
  • Odpowiedz
Zobaczcie jakie dziwne zachowanie znalazłem w #cpp. Według dokumentacji std::remove powinno przenieść wszystkie elementy sełniające warunek na koniec kontenera żeby można było zastosować remove-erase idiom. Jednak jeśli po romove nie wykonamy erase i podejrzymy zawartość kontenera to zobaczymy że nie wszystkie elementy zostały przeniesione na koniec. Potraficie to wytłumaczyć?

Oznaczyłbym @cordianss ale usunął konto. Ale może Ty @sorek będziesz wiedział

Link do compiler
walokid - Zobaczcie jakie dziwne zachowanie znalazłem w #cpp. Według dokumentacji std...

źródło: cppremove

Pobierz
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@walokid:

Explanation


Removing is done by shifting the elements in the range in such a way that the elements that are not to be removed appear in the beginning of the range.

Shifting is done by copy assignment(until C++11)move
  • Odpowiedz
kto wie może zmieni to moje życie ( ͡ ͜ʖ ͡)


@aki00: ja tak samo na początku używałem tych długich pałąków bo wszędzie w tutorialach itp. mam wrażenie one są pokazywane. Jak spróbowałem tych "niskoprofilowych" to już nigdy nie wrócę do poprzednich. Więc można powiedzieć, że moje już zmieniły. Powodzenia!
  • Odpowiedz
  • 3
@MilionoweMultikonto:

Subiektywnie:

0. Po Qt Creator od razu widać, że to wypolerowany produkt, który długie lata powstawał z myślą o C++. VSCode dla C++ to zbiór lepiej lub gorzej zintegrowanych ze sobą pluginów, które trzeba sobie zainstalować i wiedzieć które, choć sam VSCode trochę
  • Odpowiedz
@kuba181797: myslalem ze juz klepacze kodu spokornieli i odnotowali, ze wcale nie sa wyjatkowi i jest ich teraz masa bo ich robota jest zwyczajnie łatwa (polega na czytaniu doc/wymagan). Ale nie. Macie mentalnosc budowlnaca/wykonczeniowca, kazdy inny jest do bani i sie nie nadaje, tylko ja fachowiec ja król z iskrą boża ("haha nie zna flagi w frameworku xyz haha co za leszcz")
  • Odpowiedz
@Steczny: trochę stara ale do podstaw styknie. Tymbardziej na studiach wykładowcy i tak nie ogarniają nawet cpp11
Język C++. Szkoła programowania. Wydanie VI
  • Odpowiedz
Jeśli tęskniliście za #zloteradypassera, worry not! ()
Dzisiaj będzie trochę bardziej high levelowo o pisaniu dobrego kodu. Często mówi się, że "programming" to po prostu napisanie jakiegoś programu a "software engineering" to "programming over time", czyli pisanie w taki sposób aby kod był czytelny, by można go łatwo testować i utrzymywać latami oraz by łatwo było go zrozumieć nowym osobom wchodzącym w projekt.

Z
Passer93 - Jeśli tęskniliście za #zloteradypassera, worry not! (づ•﹏•)づ 
Dzisiaj będzi...

źródło: solid

Pobierz
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@zetisdead: struktury zawsze mają stały rozmiar. Zmiana rodzaju pakowania zmienia rozmiar jednej struktury, cała reszta pozostaje bez zmian. Zmiana layoutu może dodać/usunąć padding oraz zmienić kolejność pól w strukturze, nic więcej

Wariant pod spodem ma wartość oznaczającą który wariant jest aktywny i odpowiednią ilość miejsca na przechowanie dowolnego wariantu tj. zależną od największego wariantu.
  • Odpowiedz
@Mannequeen std::variant nie ma nic do pragmy pack. Ta pragma służy tylko do ręcznego ustawiania alignmentu, dlaczego to miałoby w jakikolwiek sposób wpływać na std::variant? std::variant to zwykły kontener, cokolwiek wsadzisz do środka to będziesz to tam miał.

@Saly
@Hauleth: Mówienie, że w C++ kompilator nie przestawia data memberów też nie jest do końca precyzyjne. Do C++23 kompilator musiał tylko szanować porządek deklaracji w ramach jednego access specifier,
  • Odpowiedz
Witam, potrzebuję pomocy w poprawie zrobionego już sprawozdania z Metod Elementów Skończonych (zadania do zrobienia w Cpp i Excelu). Rozwiązania mam dobre, tylko sprawozdanie jest do poprawy. Podeślę oczywiście instrukcje do każdego zadania wraz z moimi rozwiązaniami i sprawozdaniem które zrobiłem oraz komentarz od prowadzącego. Za wszystko zapłacę, więc się dogadamy. Jak ktoś ogarnia temat, to nie będzie nic trudnego.

#informatyka #cpp #mes #metodyelementowskonczonych
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Potrzebuję pomysłów na programy współbieżne do inżynierki, nie chcę robić nic ambitnego bo już pracuję, więc inżynierkę chcę zrobić by zdać ( ͡° ͜ʖ ͡°) Technologia to #java i #cpp
Na razie wpadłem na:
-Kopiowanie plików
-Szukanie liczb pierwszych
-Quick sort/merge sort
Bardzo proszę na sugestie ()
#programowanie #studaza #it #
  • 19
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@SpinOff: zgadzam się że porównywanie wydajności, zwłaszcza między językami jest zadaniem trudnym i w zasadzie nie na poziom pracy inżynierskiej. No chyba że dla mega wymiatacza pasjonata. Tzn można coś zrobić, ale to coś będzie miało zerową wartość merytoryczną, natomiast tak zrobić aby to było do czegoś użyteczne, a wnioski prawidłowe, no to mocno nietrywialna sprawa.

Ok, napiszesz algorytm do liczb pierwszych w Javie i C++, uruchomisz, zmierzysz czas. Wyjdzie Ci
  • Odpowiedz