#cpp #naukaprogramowania
Mam klasę abstakcyjną która zawiera funkcję virtual void blabla() const = 0
Co mam zrobić jeżeli chcę dziedziczyć z tej klasy, ale tak aby używać tej metody wirtualnej bez const (tak żeby ta metoda mogła zmieniać wartości mojej klasy)? Czy w ogóle da się to zrobić?
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

ewentualne w klasie potomnej możesz definiować pola z kwalifikatorem mutable. tak czy owak, oba rozwiązania są błędne, jeśli chodzi o programowanie obiektowe; skoro chcesz stworzyć implementację metody foo, to powinieneś się trzymać jej kontraktu tj. metoda foo nie zmienia pól klasy. najlepszym rozwiązaniem byłoby usunięcie kwalifikatora const z blabla w klasie bazowej, albo stworzenie zupełnie innej metody niewirtualnej w klasie potomnej (najlepiej o innej nazwie)
  • Odpowiedz
Pytanie do mirków z #cplusplus #cpp #programowanie
Nie mam za bardzo doświadczenia z C++, a potrzebuję uruchomić ten kod. Jest to prosty skrypt wykrywania twarzy z użyciem OpenCV.
Skrypt wykrywa twarz oraz oczy osoby na obrazie z kamery. Problem polega na tym, że podczas wykrywania oczu (dzieje się to w linijce 79) coś przestaje działać i aplikacja się zawiesza. Nie zwraca żadnych błędów.

Normalnie w
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Wunderwafel: Ja bym odpalił pod gdb i jak się zawiesi, to nacisnął CTRL+C i przeanalizował zawartość stosu, żeby się dowiedzieć, w którym miejscu program jest. Tylko musisz mieć opencv z symbolami do debuggowania.
  • Odpowiedz
@Kopytko1: @gregggg: tablice jednowymiarowe są faktycznie szybsze, tylko się trudniej obsługuje. Wystarczy zadeklarować jako int* tablica = new int[rows*cols]; a potem dostęp do wartości w komórce (i,j) jako tablica[i*cols + j]
  • Odpowiedz
@jiffa: Na kilku grupach programistów na fb bardzo ładnie zostały rozjechane te brednie.
Średnie roczne wynagrodzenie brutto w Javie 168 tys. zł czyli 14k miesięcznie xD Powinni podać źródło wiedzy o zarobkach - wykop.pl ( ͡° ͜ʖ ͡°)
  • Odpowiedz
Załóżmy, że nie mam większych problemów ze składnią w języku X czy Y i podstawowymi bibliotekami. Jak jednak nauczyć się projektowania oprogramowania, planowania architektury programu? Często zdarza się tak, że gdy piszę jakiś większy program, to po pierwszych kilku tysiącach linii kodu dochodzę do wniosku, że najlepiej byłoby kod zaorać i napisać od nowa z innym podziałem klas, funkcji, etc. Często stoję pod znakiem zapytania czy powinienem skorzystać z dziedziczenia, zawierania czy
  • 14
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#naukaprogramowania #cpp #pytanie

Hej Mirki, mam problem - muszę przeciążyć operator = dla klasy CPoint, z metodami i konstruktorami zdefiniowanymi tak jak w linku.
Wydaje mi się, że wszystko powinno działać prawidłowo, niestety gdy używam tego operatora (cpoint1 = cpoint2), to nie zmienia on wartości punktów. Cout, który mam wewnątrz metody przeciążającej operator wyświetla 3 razy tę samą wartość, dla powyższego zapisu cpoint1 = (cpoint2) wyświetla 3 razy
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Cześć mirki z #programowanie i #cpp - mam problem nie tyle związany z kodowaniem co z wymyśleniem zasady według której ma działać mój program. Mam do rozwiązania problem producent-konsument, ale trochę rozwinięty, bo:
jest dwóch producentów - jeden robi jeden element, drugi dwa
dwóch konsumentów - jeden odczytuje jeden element, drugi dwa
mam jakąś kolejkę FIFO powiedzmy 10 elementową i mam nie pozwolić na jej przepełnienie/spadnięcie liczby elementów
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@g500s: Bardziej ogólne rozwiązanie polegało by na kolejce FIFO dla gotowych producentów bądź konsumentów. No ale przy dwóch to raczej niema co się zastanawiać i pewnie by to mocno utrudniło ci implementacje.
  • Odpowiedz
Mirasy, jak zapisać wektor struktur do pliku binarnego? Struktura ma tylko dwa pola typu float. Próbowałem file.write(reinterpret_cast(&vec[0]), n * sizeof(Complex));, ale przy odczycie mam śmietnik. Odczytuje w ten sposób:

file.read(reinterpret_cast(&vec[0]), sizeof(Complex)*n);
#programowanie #cpp
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Dodałem wsparcie dla zmiany poziomów, stworzyłem bardzo podstawowe menu, ogarnąłem w końcu kopiowanie plików do folderu builda przez CMake. Zrobiłem też tak by gracz nie poruszał się z jednostajną szybkością, ale ruch ten wyglądał tak jak tu na trzecim obrazku w pierwszym rzędzie: http://iallenkelhet.no/wp-content/uploads/sites/2/2013/04/easing-curves-620x453.png
Co prawda prawie tego nie widać bo tak się porusza po każdej klatce, ale wydaje mi się, że efekt jest w miarę ok.

Mój tag: #leinnanblends

Przy okazji pytanie
Leinnan - Dodałem wsparcie dla zmiany poziomów, stworzyłem bardzo podstawowe menu, og...
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mirki
Od tego weekendu będę prowadził na Wykopie Szkołę Hackerów. Będę się starał przekazywać wiedzę z zakresu #hacking #blackhacking #hardcorecoding #ciemnestronyassemblera #cpp #programowanie #cyberatak #ddos.
Wykłady online poprowadzi ze mną @szalonydaniel
Obserwujcie mnie, jutro odc 1
o.....m - Mirki 
Od tego weekendu będę prowadził na Wykopie Szkołę Hackerów. Będę się...

źródło: comment_o9jGB2IHL3BJCnP8BA6TrvYMytbNP9UV.jpg

Pobierz
  • 16
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Hej Mirki, dobry wieczór wam!
Napisałem funkcję szablonową do obliczania sumy elementów w tablicy. Chciałem też sprawdzić czy funkcja ta działa dla liczb zespolonych (complex) i mam złe (chyba) wyniki:
Dla wartości c1 = (10.2, 3.7) i c2 = (25.4, 37.5) dostaję wynik <41.2, 0>.

Czy żeby ta funkcja działała też dla wartości zespolonych muszę mieć inną funkcję, czy muszę dać w tej funkcji szablonowej jakieś sprawdzenie, że gdy przekazuję tablicę liczb
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@TheNewIcek: W sumie to nie pomyślałem nawet o tym, wszędzie gdzie szukałem informacji był zapis z nawiasami (), więc też ślepo w to poszedłem nie myśląc za bardzo o tym, dziękuję bardzo za wskazówkę! ʕʔ
  • Odpowiedz
@polskiniko: mogles tez zrobic std::complex(1, 2).
http://en.cppreference.com/w/cpp/language/operator_other

Built-in comma operator

In a comma expression E1, E2, the expression E1 is evaluated, its result is discarded, and its side effects are completed before evaluation of the expression E2 begins (note that a user-defined operator, cannot guarantee sequencing) (until C++17).

The type, value, and value category of the result of the comma expression are exactly the type, value, and value category of the
  • Odpowiedz
Napisałem krótki programik (~50 linijek kodu) w Visual Studio Enterprice 2017 RC. Skompilowało i wgl wszystko cacy. Problem polega na tym, że program chodzi wyłącznie na kompie na którym zainstalowano VS... Jak odpalam go na innym, bez tego środowiska to otwiera się konsola i zaraz wywala mi po kolei 3 błędy (pic rel). Próbowałem na 2 komputerach bez VS (wywaliło 3 błędy) i na komputerze na którym go napisałem próbowałem go odpalić
notrzeba - Napisałem krótki programik (~50 linijek kodu) w Visual Studio Enterprice 2...

źródło: comment_PDEthJ1yXHDQCbCafdwSnuLtAbXI7dRf.jpg

Pobierz
  • 22
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Bauzzer: nie mam pojecia o programowaniu, nie jestem programista, nie zamierzam byc :P mam jakies tam podstawy podstaw podstaw, wyjatkowo potrzebuje stworzyc maly programik na wlasny uzytek, to wszystko. No ale wykopki beda po mnie jezdzic ( ͡° ͜ʖ ͡°)
  • Odpowiedz