Macie jakąś książkę, artykuł porównujący C++ z Javą? Potrzebny do zrobienia prezentacji na jego podstawie. W googlu nic porządnego nie ma, są strony po angielsku ale to już język branżowy i ciężko zrozumieć.
#cpp #java #informatyka
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Hej Mircy, dwie sprawy:
1. Korzystał ktoś może z frameworka catch do unittestów? Jakieś wady/zalety w stosunku do googletest?

2. Robię projekt na uczelnię. Musi budować się i działać na dwóch platformach (GNU/Linux + Windows). Chcę korzystać z CMake jako systemu budowania, QT do GUI, Boosta + googletest, ale nie mogę zmusić tego do działania na obu systemach. Na Linuxie wszystko śmiga, ale Windows ma jakieś problemy :<. Ogarnia ktoś CMake i
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@robko: wiesz co, najpierw miałem problemy z boostem, który chciał linkować skompilowane biblioteki (a większość jego modułów jest header-only a z tych co muszą być skompilowane nie używałem), ale już to rozwiązałem i explicite napisałem w cmake, żeby boost nie używał skompilowanych bibliotek. Później miałem problem z gtestem, bo visual studio domyślnie ustawia linkowanie na dynamiczne, a gtest domyślnie jest kompilowany statycznie. Rozwiązałem to dając if-a czy jest budowane na
  • Odpowiedz
Mirki, przemieliłem całą biblioteczkę. Szukam do czytania jakiejś ciekawej książki/publikacji: najchętniej C / Cpp, może być też coś ogólnie o programowaniu. Poziom w miarę zaawansowany. Jakieś klasyki ktoś poleci? Ktoś czytał coś fajnego? ( ͡° ͜ʖ ͡°)

#programowanie #cpp
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Jak w programie konsolowym w #cpp zgodnie z dobrymi praktykami zaimplementować menu? Bo zagnieżdżanie kilku pętli while nasłuchując komend użytkownika to pewnie nie jest zbyt dobre rozwiązanie?
#naukaprogramowania
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@log2n
Po pierwsze boosta zainstaluj. Boost da ci możliwość napisania testów jednostkowych. Potem napisz sobie kilka testów klikając tutaj w menu. Super. Teraz jesteś tdd. Czas na apke. Dobre tu będzie mvc. Także machnij sobie widok menu, model prac akceptuję kontrolera które obsluza menu. Pewnie połowy z tych funkcji nie przewidziałeś w testach więc je dopisz. Kolejny krok to pętla zdarzen. Ta niech odpala najpierw service zczytujący bufor klawiatury. Ten niech
  • Odpowiedz
@log2n: Wg mnie wzorzec kompozyt + maszyna stanów. Elementem kompozytu byłby każdy jeden ekran menu. Każdy ekran implementowałby maszynę stanów służącą do nawigacji pomiędzy pozycjami i przechodzeniem pomiędzy różnymi ekranami. Struktura połączeń pomiędzy elementami kompozytu stanowiłaby strukturę menu.

W wątku czytasz naciśnięcie klawisza, dodatkowo trzymasz obecny kontekst menu w formie referencji do konkretnego węzła kompozytu. na podstawie klawisza obliczasz zdarzenie i przekazujesz do węzła.

Pisz na PW jakbyś chciał rozwinąć
  • Odpowiedz
Zamierzam zakupic jakis ksiazke do nauki C++. Czy Thinking in C++ jest the best?
Mysle tez nad :
- C++. Przewodnik dla początkujących
- Język C++. Szkoła programowania. Wydanie VI - ta ma 1200, to jakas biblia programistow C++?
#cpp #programowanie
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#cpp #programowanie
Cześć, mam klasę której zadaniem jest odczytywanie konfiguracji z pliku - co odbywa się w konstruktorze. Z niej będą dziedziczyły 2 inne klasy. W jaki sposób mogę to napisać, aby konstruktor nie był wywoływany kilkukrotnie?
Czytałem o singletonach, ale też raczej nikt nie zalecał dziedziczenia z niego. Zatem jak ładnie to napisać?
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@animuss: nie polecam robić protected, w prawie każdym przypadku (na pewno w tym) lepiej zdać się na kompozycję, niż dziedziczenie z polami protected.
  • Odpowiedz
#programowanie #cpp
Cześć, jestem początkujący w programowaniu obiektowym i natknąłem się na pewien problem, którego nie jestem w stanie rozwiązać. Mianowicie mam abstrakcyjną klasę Organizm, po której dziedziczą klasy typu 'Koala', 'Kon', 'Ptak'. Do tego chcę, aby w klasie Organizm istniała metoda nowyOrganizm, która tworzy nowy obiekt (a dokładniej wskaźnik):
Organizm *child = new Koala, new Ptak, new Kon;
No właśnie... mógłbym zaimplementować metodę w każdej z klas pochodnych z new
  • 20
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@j4ace: Nie da się. A przede wszystkim nie powinno się, nawet jeśli byłby jakiś pokrętny sposób, przez który byłoby to możliwe.

Nadklasa nie powinna wiedzieć nic o podklasach i nie próbować ich tworzyć/nijak ingerować w ich atrybuty/rzutować na nie/tym podobne.

Jak to zrobić poprawnie? Nadklasa organizm może posiadać metodę "nowy organizm", która może być abstrakcyjna. Podklasy przeciążają tę metodę i zwracają nowy obiekt podklasy.
  • Odpowiedz
Mam strukturę listy jednokierunkowej, a w pewnej klasie głównym parametrem jest właśnie "head" tej listy. Kiedy tworzę w tej klasie metodę, która dodaje na początek listy jakiś element to go nie dodaje i nie wiem czemu, jakby działało na kopii "heada" i zapominało po wyjściu z metody, że cokolwiek się zmieniło. Jeżeli nawet to prawda to nie wiem jak to zmienić. Dodam, że dodanie elementu na koniec listy działa, ale tam nie
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Część Mirasy, mam problem chcę zamienić w stringu wszystkie liczby całkowite na ich odpowiednik ułamkowy(1=>1.0), próbuje to robić za pomocą regexów, ale dałem radę zrobić tylko dla liczb z przedziału od [0-9]. Moglibyście spojrzeć na ten kawałek kodu?

std::regex numbers("^[0-9]{3}$");
while (std::getline(file, line)) {
std::string newLine = line;
std::cout << std::regex_replace(newLine, numbers, "$&.0") << std::endl;
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@GaHee: R"(tekst)" powoduje, że tekst w środku będzie traktowany dosłownie - "\n" będzie traktowane jako "\n", a nie jako znak nowej linii. żeby przekazać znak nowej linii trzeba... po prostu kontynuować w nowej linii. Przydatne do regexów, bo tam się roi od \d i \w, które trzeba by escapeować podwójnie
  • Odpowiedz
Na #studbaza mieliśmy zrobić program który m.in. ma przemielić plik z danymi. Ja robiłem w #cpp, kolega w #csharp "bo nie trzeba pisać tyle kodu"
u mnie wczytanie pliku i sparsowanie danych zajmuje około


a u kolegi w super C Sharpie
  • 41
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Zainteresowanych tematem #mirkopromocje na #ksiazki z dziedziny #programowanie i #naukaprogramowania informuję, że teraz w księgarniach Helion i Ebookpoint, wybrane książki, przez niektórych uznawane za klasyczne pozycje wśród książek programistycznych, można kupić teraz w Helionie w postaci druku 25% taniej, w postaci e-booków 40% taniej. Księgarni Ebookpoint e-booki 40% taniej. Listy tylko minimalnie się różnią. Tym, którzy chcą łatwy podręcznik do nauki #cpp, w
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#naukaprogramowania #cpp Nowy tydzień, nowy materiał, nowe problemy ( ͡° ʖ̯ ͡°) Kod Mam taki o to kod. Pytanie jak przeciążyć operator << jako przyjaciela i czy przeciążenie + i - jest dobre ?
Pytanie nr 2. Jak będę mógł przeciążyć inne operatory typu bool, oraz najważniejszy z którym podejrzewam, że będzie najwięcej zachodu operator mnożenia dwóch macierzy. Tak sobie się męczę od wczoraj.
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@lukaszwasyl: imo keyword 'friend' jest bardzo niefortunny w ogóle (klasa dowiaduje się o rzeczach niekoniecznie dla niej istotnych). W przypadku strumienia, może, jeżeli wszędzie przestrzegasz takiego standardu (ale: klasa związana z danymi zaczyna rozumieć coś takiego jak strumień). Czy globalny operator<< nie wystarczyłby do tego co chcesz osiągnąć? Widziałem implementacje operacującę na plikach "printers" właśnie z definicjami operatora wypisania (plus przydatne do gtestu).
  • Odpowiedz
VisualStudio mi płacze jakbym przekroczył pojemność inta a cpp.sh działa prawidłowo.
W czym może tkwić problem?

int tablica[100000];
int n;
tablica[1] = 1;
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Normalne. Różne kompilatory mają zaimplementowane różne sprawdzenia. No taki VS zauważył że używasz nie zainicjalizowanej komórki i płakał a sieciowy nie miał tego sprawdzenia (albo miał ale go nie włączyłeś) i siedział cicho.
  • Odpowiedz
@darsto @zortabla_rt: Źle! Pała! Siadaj do ławki i siedź cicho!

O ile visual ma wyspecyfikowane wartości którymi wypełnia pamięć to żadna z tych wartości nie jest 0. Poza tym takie wypełnianie obowiązuje tylko dla pamięci na stercie.
  • Odpowiedz