#programowanie #cpp

No elo. Mam dla Was kolejną programistyczną zagadkę. Do rzeczy:

Oto nagłówek szablonu klasy dziedziczącej po vectorze (tak, wiem że to zły pomysł, ale to nie jest temat na tę dyskusję).

-------------------------------------------------------------------
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Analityk: Uroki "inteligentnych" IDE, które lubią sobie w tle coś preprocesnąć, wrzucić w cache itd., a jak im się plik podmieni tak, że nie zauważą - to pozostaje restart programu (chyba, że w opcjach ma jakiś "re-read" projektu).
  • Odpowiedz
Mirki zacząłem pisać w #cpp, potrzebuję mieć w swoim programie kolejkowanie zdarzeń. Napisałem coś takiego: http://ideone.com/X75trz

Problem i program wydaje mi się prosty. Starałem się uprościć kod dlatego by milion klas nie przesłaniał problemu. Jeśli będzie trzeba to wytłumaczę swoje intencje.

Do Was mam prośbę o ocenę kodu, czy robię to dobrze ;)
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@losiul: Na początku tak kombinowałem tylko chciałem mieć w efekcie końcowym jedną kolejkę. Jednak mogłaby ona przyjmować do siebie tylko const Event & co powodowałoby rzutowanie w górę, a że to kopia to już w dół nie wrócę.

Wychodzi na to, że muszę skorzystać z Twojego pomysłu tylko jeszcze dopracować zarządzanie listą kolejek.
  • Odpowiedz
Panowie,

Czy w Qt jest możliwość włączenia okna edycji tekstu (te standardowe okno, w którym ustawia się właściwości tekstu typu podkreślenie, wielkość, pogrubienie, itd)? Czy jednak samemu trzeba sobie takie okienko stworzyć?

#programowanie #qt #cpp
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mirki++, słuchajcie. Mam dość duże (kilkunastoletnie) doświadczenie w programowaniu. Pisałem kiedyś w C++, ale to było dawno, nieprawda i chyba trochę lameriada. Mam też od czasu do czasu trochę styczności z ANSI C, z prostymi rzeczami nie mam problemu. Chciałbym spróbować iść w kierunku C++, zapewne C++11, ale tym razem porządnie nauczyć się od podstaw. Najlepiej chłonę kompleksowo pokazaną wiedzę, popartą przykładami, z dogłębnym wytłumaczeniem dlaczego tak a nie inaczej. Tylko teraz:
  • 18
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#programowanie #cpp #javascript

Mirki, potrzebuję sposobu na używanie Javascripta w projekcie C++. W sensie żeby w już skompilowanym używać zewnętrznych skryptów z pliku, bo robię grę w której na JSie mają się docelowo opierać eventy map.

Znalazłem coś co się nazywa CliPP i googlowskie v8.h. Nada się to to czy niekoniecznie? :v
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Pytanie - dlaczego jak chcę przeciążyć operator wyjścia "<<" to przy zdefiniowaniu nagłówka funkcji w postaci:

ostream& operator<<(ostream& out, Auto& samochod)
Dostaję "Too many parameters for this opertator function".

zaś przy zdefiniowaniu jako zaprzyjaźniona funkcja:
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • 4
@Swiezutki: próbujesz pewnie zdefiniować ją jako metodę klasy Auto, a tak się nie da, bo pierwszym argumentem (ukrytym) będzie 'this'. Musiałaby to być ewentualnie metoda klasy ostream, ale nie możesz modyfikować jej źródeł. Jedyna możliwość to zdefiniować ją jako globalną funkcję i zaprzyjaźnić z klasą.
  • Odpowiedz
Mirki, mam prostą strukturę punktu

struct point {

int x, y;

point()
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

tak, da się, (poprawione) kodziki:

ostream& operator<<(ostream& out, const point& p) { return out << ...; }

istream& operator>>(istream& in, point& p) { return in >> p.x >> p.y; }

(przy czym nie uwzglednilem sprawdzania bledu strumienia i zakladam format inputu "10 20", a nie "(10, 20)")
  • Odpowiedz
Czy ta funkcja potrzebuje jeszcze zabawy nad optymalizacją?


1. "czy trafiono" z okresloną szansą - gdy otrzyma mnoznik < 0

  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Noct: Jak funkcja zwraca inta i robisz 1*mnożnik/100, to ile mnożnik nie jest większy od 100, to zawsze otrzymasz 0. Nie wiem, czy taki był cel, ale nie jest to do końca jasne z tego kodu.
  • Odpowiedz
@Ajdont: bo obiekt na ktory wskazuje zawiera odnosnik do vtable, ktora jest tablica wskaznikow na metody klasy. Obiekt bazowy zawiera odnosnik do metod bazowych, obiekt klasy pochodnej zawiera odnosnik do metod pochodnych. Poczytaj sobie o vtable : )
  • Odpowiedz
@losiul: vtable jest tworzone tylko, gdy masz jakieś metody wirtualne i myślę, że o to właśnie chodziło @KrzaQ2.

@Ajdont: Pytasz jak to jest zrealizowane, jak to działa "pod spodem"? Czy może pytasz dlaczego tak to zostało wymyślone i dlaczego na to pozwala język?

Na drugie pytanie odpowiedział @blesher i @JanekGreen. Na pierwsze pytanie odpowiedź jest długa i skomplikowana ;) @Losiul częściowo odpowiedział,
  • Odpowiedz
Mam dll'kę. Mam nazwę funkcji przez nią udostępnianej. Potrzebuję adresu tej funkcji względem początku modułu dll.

Normalnie po prostu załadowałbym ją i zrobił tak:

HMODULE libraryHandle = GetModuleHandle(TEXT("biblioteka.dll"));

void*
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Nurtuje mnie jedna kwestia dotycząca linkowania. Nie obchodzi mnie pamięć, oraz rozmiar pliku. Chcę aby program uruchomił się na każdym komputerze z Windowsem. Wybrać statyczne linkowanie, czy dynamiczne? Skąd wziąć .dll do standardowych bibliotek c++? #cpp
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@binerek: Jak zlinkujesz statycznie to nie potrzebujesz DLL. Jak sama nazwa wskazuje, DLL dynamicznie ładowana biblioteka (_dynamic-link library). Przy czym

math.h
to część standardowej biblioteki, a tej chyba nie da się linkować dynamicznie.
  • Odpowiedz
@Pustulka Pewnie jeszcze przez jakiś czas tak będzie, ale patrząc na IntelliJ i na PyCharma to mają oni naprawdę duży potenciał na zrobienie czegoś dobrego. Bo w sumie to poza VS (które dopiero teraz jakoś bez resharpera działa), i Qt Creatora to z C++ jest naprawde problem. Strasznie mnie boli to że nie ma takiego dobrego IDE ( w sensie na poziomie IntelliJa)
  • Odpowiedz
Mam pytanie do ogarniaczy:

Obecnie pracuje na platformach ARM (BeagleBone/RADXA/CubieBoard). Stworzyłem ogólnie program którego zadaniem jest zarządzanie wszelakimi modułami (SOAP, algorytmy temperaturowe, sterowanie Moxą i GPIO) via server UDP. Wszystko było super, niestety czym dalej w las i czym więcej pojawia się modułów tym python... powoli nie wyrabia (głównie sprawy wielowątkowości i rozbudowania samych klas). Zastanawiałem się nad zmianą języka i po krótkiej analizie wybrałem C++.

Ktoś może pracował w C++ z Boostem
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@PsichiX: Patrz

--> CLion jest do odpalenia na Windowsie, VS też, (oba służą do programowania w C i C++) to bezpośrednia konkurencja

--> CLion możesz odpalić też na linuksie gdy potrzebujesz ide, żeby np przeportować twój świetny program z Windowsa - to jest argument w czym CLion jest lepszy.

A co do pytania to nie ponawiaj, bo twoje pytanie jest złe już w samej konstrukcji, bo zakłada, że VS musi
  • Odpowiedz
#cpp

Ktoś coś na temat Carriage return (powrót karetki) bez używania Insert? Interesuje mnie taki efekt jak na przykładzie:

cout << "druga czesc tekstu.";
cout << "\rTo jest pierwsza i ";
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mireczki, skad wziąć bibliotekę curlbuild.h?

Sciągnąłem z gita ale tam są tylko takie:

curlbuild.h.cmake curl.h easy.h mprintf.h typecheck-gcc.h

curlbuild.h.dist
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach