Mircy, jest problem, bo nie pamiętam jak to się robiło i jakoś nie mogę się za to zabrać (nie kompatybilituje się z tutorajalami :/)

Chodzi o podzielenie jednego maina na kilka plików i plików nagłówkowych.

Mam dość długi plik main.cpp, w którym ~połowa linii kodu to funkcje i klasy.

Stworzyłem
  • 14
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@calka: sory pisałem z telefonu oglądając TV. Chciałem na szybko pomóc rozwiązać problem nie pisząc elaboratów o bibliotece standardowej, przestrzeniach nazw i dyrektywach using namespace. XD
  • Odpowiedz
Preprocessor for C/C++ gives full code details

The Python-based CPIP preprocessor for C/C++, having just reached a de facto 1.0 release milestone and available for download, aims to provide developers with a wealth of information about their code

http://www.infoworld.com/article/2688402/application-development/pre-processor-for-cc-gives-full-code-details.html

#
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Szybkie pytanie #programowanie #cpp : jak macie strukturę, która miałaby mieć tylko gettery i settery dla wszystkich swoich pól, to robicie po prostu

struct
i wszystko publiczne, czy bawicie się w

class
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@RaVo: Ja uƶywam Qt Creatora i bardzo sobie chwalę. Współpracuje z msvc jeśli musisz uƶywać tego kompilatora, ale ja sugerowałbym MinGW. Lepszy support C++11 i 14.
  • Odpowiedz
piszę sobie aplikację okienkową w Visual Studio 2013 i mam pytania

1. jak najlepiej rysować? używać PictureBox_Paint?

2. jak narysować trajektorię? Mam zrobioną symulację ruchu ciała i mam jej ruch w osi X w funkcji czasu. Rysowanie krótkich kresek wychodzi słabo. Znalazłem metodę DrawPath ale nie wiem jak tego użyć. Dokumentacja za wiele nie pomaga.

Ktoś
  • 33
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Marpop: Szybkość działania zależy od procesora. Na jednym komputerze będzie to działało szybciej, a na innym wolniej dlatego to postawiłem jako diagnozę. Musze pomyśleć, co jeszcze może być przyczyną tego stanu rzeczy, bo kiedyś miałem taki problem i rozwiązałem to w jakiś sposób.
  • Odpowiedz
#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