@RaVo: to z friendem to jest taki trick, że normalnie byś w klasie zadeklarował operator jako funkcję jako przyjaciela, a na zewnątrz go zaimplmentował. Żeby dostać się do prywatnych rzeczy w klasie operator (funkcja) musi być zaprzyjaźniony. Można jednak od razu go zdefiniować w klasie.

Można zrobić też inaczej - zdefiniować go w klasie tak, żeby był jednoargumentowy i wtedy nie trzeba frienda, bo będzie normalną metodą.
  • Odpowiedz
#programowanie #cpp
W lini 42 mam taki błąd. Jak temu zaradzić? Porównywałem ten kod z innym kodem wykorzystującym przesyłanie tablicy dynamicznej do funkcji i działało. A w tym przypadku nie mam pojęcia, o co kaman.

error: cannot convert 'int**' to 'int*' for argument '1' to 'float prostNAbieg(int*, float, float, float, double)'|
http://pastebin.com/HF2xuQdR

Jakieś rady, wskazówki? ( ͡° ͜ʖ ͡°)
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@kufelmleka: Na górze definiujesz funkcję jako:

float prostNAbieg(int *w,float x, float y, float r, double f);

A poniżej (59 linia) masz:

float prostNAbieg(float x, float y, float r, double f)

Przecież te linijki powinny wyglądać tak samo.
  • Odpowiedz
Mirki robię grę multi przez sieć (UDP) dla 4 osób i sprawa wygląda tak, że serwer mieli na bieżąco jak głupi dane i rozsyła do każdego gracza. Gracze z kolei, wysyłają tylko do serwera pakiety jak zajdzie jakaś akcja (ruch), i po tym odbierają pakiet od serwera.
Mam świadomość, że serwer n------a pakietami jak CJ z miniguna podczas szturmu ballasów na Groove Street i cześć z nich idzie w powietrze.
Raz na
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#programowanie #cpp

Hmm, dlaczego ludzie używają sizet zamiast inta? Przykładowo widzę jakiś szablon pojemnika, który ma przechowywać N elementów jakiegośtam typu. No to myk myk , natomiast zamiast int N widzę sizet N. Czemu? Przecież i tak potem w środku w konstruktorze tworzymy tablicę typu T z liczbą elementów [N], więc dostosuje rozmiar każdego elementu tablicy do typu T jakikolwiek by nie był.
  • 32
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Stosuje się sizet dla przenośności kodu. Standard gwarantuje, że sizet jest wystarczająco duże, żeby opisać rozmiar dowolnego obiektu lub tablicy obiektów[1]. Int ani unsigned int takiej gwarancji nie mają, standard gwarantuje[2] że int ma 16 lub więcej bitów (na 32bit) lub 32 lub więcej bitów (na 64bit).
TLDR: jeśli liczysz jabłka używasz int, jeśli przechowujesz rozmiar obiektu lub tablicy obiektów, stosujesz size_t.
[1] http://en.cppreference.com/w/cpp/types/size_t
[2] http://en.cppreference.com/w/cpp/language/types
  • Odpowiedz
@Khaine: To ja jeszcze podsumuję, bo za mało postów ;)

Powody do istnienia i używania size_t:

1. Czytelność. Użycie size_t daje jasno do zrozumienia, że dana wartość jest wielkością jakiegoś obszaru pamięci albo liczbą elementów, a nie jakąś tam
  • Odpowiedz
Mireczki z #cpp i #programowanie
Mam taką małą zagwozdkę, posiadam liczbę czterocyfrową dajmy na to 2554, chciałbym aby na początku i końcu tego ciągu znaków stała cyfra 9, tzn chce aby to wyglądało tak 925549. Jakiś pomysł jak to mądrze i prosto zrobić?
  • 20
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Witam drogie Mirki,
Jestem początkującą osobą z programowania. Wiem dużo z teorii(konstruktory kopiujące, template wyrażenia lambda, przeładowanie operatorów) ale niestety zero praktyki. I teraz jeśli jest jakiś samotny mireczek albo mirabelka, która chciała by się ze mną uczyć #programowanie lub #programowaniedlaopornych to zapraszam do kontaktu. Mogę smarować w #java (najmniej) #cpp #c oczywiście współpracować będziemy przez gita. Głównym celem jest zrobienie jakiegoś małego podfolio,
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#programowanie #cpp #pytaniedoeksperta
Proszę serdecznie o pomoc. Albo chociaż jakąś dobrą wskazówkę.

Mam symulator sygnalizacji świetlnej. Światło czerwone i zielone ma się zapalać na przemian, w odstępie takim jaki użytkownik zdefiniuje w Edit1. Okej, to działa.

Chciałbym jeszcze zrobić żeby zielone światło na jakieś 2-3 sekundy przed zmianą na czerwone zaczęło mrygać z częstotliwością określoną przez usera w Edit2. I tu mam problem, bo próbowałem już kilku sposobów, ale
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mam skompilowany program napisany przy użyciu biblioteki opencv. W jaki sposób mogę go otworzyć na komputerze nie zawierającym tej biblioteki, bez konieczności instalowania jej?
#cpp #pytanie
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mircy, mam problem z zadankiem na studia.
Mam sobie klasę, która trzyma liczby typu a+b*sqrt(2) i na niej przeciążone operatory dodawania, mnożenia, inkrementacji itd.
No i mam takie coś:
std::cout << x++ + y + x << "\n";
co się normalnie wykona, z tym że u mnie musi być zrobione tak, że post/pre inkrementacja zostanie policzona dopiero gdy całe wyrażenie się policzy. No i problem polega na tym, że nie wiem jak
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Pan_wons: Debuguj. Debuguj bardzo dokładnie. Nie wiem też jaka aplikacja. Jeśli masz gdzieś zarządzanie pamięcią to może daj sobie logi do konsoli "zaalokowałem pamięć w module takim i takim", "zwolniłem pamięć w module takim a takim", a potem nie wiem, śledź to, każ ubić cały program etc. Możliwe ,że znajdziesz.

Zastanów się też czy nie wywołujesz jakiegoś obiektu rekurencyjnie - tzw. czy nie wywołujesz obiektu który następnie wywołuje sam siebie
  • Odpowiedz