Za radą @losiul dodaje raz jeszcze, tylko poprawnie otagowane

Pytanie do wypokowych programistów C++,

Chce wrócić do C/C++. I tu pytanie - od czego zacząć, chodzi mi bardziej o narzędzia, jakies linkery, kompilatory, dobre IDE, może jakieś tutoriale o bibliotekach etc. Bo na nacie jest pełno staroci albo kursów o tym, czym jest zmienna albo wskaźnik, a to, powiedzmy, już przyswoiłem. W czym robi się profesjonalnego C++ ?

#programowanie
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@M4ks: IDE: vim z jakimś clangpluginem/Qt Creator (teƶ clangplugin dostępny)/MSVS z VAX

REPL (so to speak): cling/geordi

Zakładam, ƶe przez "wracam" rozumiesz "nie znam C++11 i
  • Odpowiedz
Program ma implementować poniższa hierarchię klas. Dodawanie i usuwanie obiektów ma być możliwe tylko dla klas które nie mają potomka. Zeby uniemożliwić dodawanie obiektów do klas nie będących "liśćmi" uczyniłem te klasy abstrakcyjnymi. I teraz kwesia jkaiego rodzaju destruktorów użyć żeby to się nie wywalało? Bo dla klas niebdących liściami utworzyłem konstruktory wirtualne, ale nie wiem co z liściami..

#programowanie #cpp
S.....a - Program ma implementować poniższa hierarchię klas. Dodawanie i usuwanie obi...

źródło: comment_Yater9lWnywKQkbiI0un3QovI4EvJXG2.jpg

Pobierz
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mam klasę Figura, do reprezentowania obiektów na ekranie i dziedziczącą z niej klasę FigTrojkat z przeładowaną metodą rysuj() .

W klasie odpowiedzialnej za wyświetlanie openGLa zrobiłem sobie Qlist na obiekty Figura.

QList<Figura> ListaDoNarysowania;


A
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@duffman: Po pierwsze, odpowiedz sobie na pytanie: dlaczego chcesz korzystać z polimorfizmu? W 99% przypadków tak na prawdę nie chcesz z niego korzystać. Jeśli jednak się uprzesz, to musisz operować na wskaźnikach:

QList ListaDoNarysowania;
ListaDoNarysowania.append(new FigTrojkat(0, 0));
for(int i=0; i < ListaDoNarysowania.size();
  • Odpowiedz
@Onoki:

std::random_device
moƶe dawać liczby prawdziwie losowe (implementation defined), przez co jest dość powolny. Mersenne Twister,
  • Odpowiedz
Miraski. Jestem w trakcie budowy pewnego systemu. Ogólnie jest tak, że wykonuje on sobie jakieś operacje na serwerze z danych otrzymanych z różnych urządzeń, a następnie rozsyła konkretne rozkazy po sieci.

Z uwagi na to, że obsługa sieci w C++ jest dość pokręcona chciałem zaimplementować algorytm w C++ i obsługiwać sieć Pythonem, a pomiędzy dwiema aplikacjami działającymi na serwerze przekazywać dane.

Dzisiaj pojawił się pomysł, żeby pouczyć się C# i tam kombinować.

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

@Wyrewolwerowanyrewolwer: Qt ma strasznie przyjemną obsługę sieci, Boost.Asio mnie jakoś nie urzekło. Jesli moƶesz uƶywać C++11 to nie widzę sensu mieszania w to pythona - kod łączący będzie pewnie kosztował więcej trudu niƶ zyskasz na obsłudze sieci w pythonie.
  • Odpowiedz
Jest tu jakiś specjalista od boost?

Czy

promise
gwarantuje, ƶe mój
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mireczky zweryfikujcie mi proszę tego prostego blinka (C++, AVR) bo nie działa na sprzęcie i nie wiem czy to ja mam zaćmienie czy mam zwalony bootloader?

Link: http://pastebin.com/tLXxapqx

Wgrałem sobie (z problemami) Atmelowskie DFU na Atmegę32U4 i niby wszystko jest w porządku, niby Flip wykrywa hardware, niby czyści, niby wgrywa, a LED nie świeci. Bezradnosc.jpg. (
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#php #mysql #cpp #c #webdev #html #html5 #programowanie

Szukam jakichś ciekawych źródeł, które pozwoliłby mi trochę rozwinąć swoje umiejętności. Obecnie jestem na etapie średnio zaawansowanego C/C++/Javy i liznąłem wstępnie PHP/HTML5/CSS3. Strzelam, że teraz przydałoby mi się ogarnięcie wzorców projektowych, w szczególności MVC. Coś nawet zrozumiałem na wikipedii, ale ciężko jednak znaleźć po ludzku napisane tutoriale/opisy od tego, większość
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Xanatos: why so serious?

Podałem ci hasło, byś na początku kariery nie mylił pojęć, co w tym gburowatego? Jak chcesz to sobie sprawdzisz o co chodzi, miałem wklejać definicję z Wikipedii?
  • Odpowiedz
@Xanatos: Jeśli rzeczywiście jesteś na etapie średnio zaawansowanym w C/C++/Javie, to czemu nie iść w tym kierunku? Odnośnie C++, polecam Scotta Meyersa - "Effective C++" i "More Effective C++", a także reddita/hacker news.
  • Odpowiedz
Próbowałem sobie ogarnąć w końcu ten enum i średnio mi idzie. Trafiłem znów na ten megatutorial i dalej średnio mi to pyka. Mam taki fragment kodu:

enum DIRECTION { DIRUP, DIRDOWN, DIRLEFT, DIRRIGHT };

DIRECTION
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

O konwencje nazewnicze się rozchodzi. Kiedy mamy normalną pętle for jej zmienna nazywa się i, później w pętlach wewnętrznych j, k. W pętli działającej na iteratorach jest to zwykle it lub iter. A w pętli zakresowej? Napiszcie jak zwykle nazywacie zmienną w konstrukcji:

for(typ zmienna : kontener)
#programowanie #stylkodowania #java #cpp
  • 21
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

staram się nigdy nie używać foreach


@kradzionyLogin: Dlaczego? Jest bardzo wygodna i czytelna. Kiedy widzisz normalną pętle for, to pierwsze co robisz, to zastanawiasz się nad jej zakresem. Kiedy widzisz foreach od razu masz pewność, że zakresem jest cały pojemnik.
  • Odpowiedz
Poważnie się zastanawiam nad tym czy w C++ kompilator optymalizuje zbędne wywołania funkcji w warunku stopu pętli. Czy w metodzie klasy dziedziczącej po kontenerze można pisać

for(int i=0; i < size(); ++i)
tudzież

for(auto it = begin(); it != end(); ++it)
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Onoki: i nie znajdziesz, o wszystkim decyduje kompilator. Dla std::vectora możesz oczekiwać, że wywołania begin()/end() się zinlinują, natomiast customowe begin()/end() z kosmicznymi side-effectami pętla będzie wołać co iterację.
  • Odpowiedz
@sylwke3100: Jeśli nie zamierzasz zmieniać kontenera to zawsze powinieneś uƶywać opcji numer 2. W przeciwnym wypadku nigdy, ale teƶ pętla

for
nie wydaje się najszczęśliwszym do tego rozwiązaniem.
  • Odpowiedz