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

@ponton: Mam program wykorzystujący math.h i chciałbym go uruchomić na czystym windowsie. Czy statyczne linkowanie wystarczy, czy będzie wołał o brakujące dll?
  • Odpowiedz
@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

Mirki, jakaś fajna książka do C++? Za czasów gimnazjum zakupiłem Symfonię, ale od tamtego czasu jej nie ruszyłem. Da się z niej uczyć? Bo pisana fajnie, ale skończyłem na pętlach.

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

Co robię źle? Trzecia linia sie nie kompiluje. a,b,y to inty.

vector > *tab;

tab = new vector >[y];

tab[a].push_back(pair(b,1));
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Jako że zacząłem klasę maturalną trzeba porządnie się wziąć do nauki przed maturą. Chciałem więc otworzyć sobie w domu projekty z C++, które robiłem w szkole w tamtym roku szkolnym. Zainstalowałem CodeBlocks

type of instalation: Full: all plugins, all tools, just everything


ale coś nie do końca pykło. Przy otwarciu pojawia się komunikat:

Environment
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Ostatnio zacząłem ciut bawić się D. Język wydaje się fantastyczny. Najpierw napisałem prostą appkę do pracy, teraz coś, czego od dawna mi brakowało (albo nie umiałem znaleźć): online formatowarkę kodu C++. Wszystko w D (ze wsparciem vibe.d).

Póki co, muszę stwierdzić, ƶe o ile język jest super, tak jak społeczność, to dokumentacja... odbiega od tego do czego przyzwyczaił mnie Qt, msdn, czy ruby.

Kod: https://github.com/KrzaQ/cppformat (nie ma tego wiele, to jest wrapper dla

clang-format
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Bardzo zgrabnie kod wyglada - niektore featury D trafiaja do C++ - chociazby auto, w C++17 maja (w koncu!) byc moduly i koncepty. Inne wygladaly fajnie na poczatku (makra) ale w C++ masz ulepszone templaty i constexpr obecnie.
  • Odpowiedz