• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pierwsze kroki z wieloma plikami

Object Storage Arubacloud
0 głosów
225 wizyt
pytanie zadane 30 sierpnia 2015 w C i C++ przez niezalogowany
Hej, właśnie się uczę o przenoszeniu funkcji do osobnych plików i chciałbym się dowiedzieć czy dobrze robię, jednocześnie chciałbym wiedzieć.

 

http://wklej.org/id/1786498/

http://wklej.org/id/1786499/

http://wklej.org/id/1786501/

4 odpowiedzi

0 głosów
odpowiedź 30 sierpnia 2015 przez Wiciorny Ekspert (270,230 p.)
wybrane 30 sierpnia 2015
 
Najlepsza

Tak poprawnie. tylko pamietaj, że w pliku funkcja.h o dyrektywach kończoncych.Podejżewam, że tu o nich nie zapomniałeś- tylko po prostu dla czytelności kodu tak wkleiłeś :)

 przypomnienie dyrektywy pliku.h 

#ifndef nazwaPliku_hpp
#define nazwaPliku_hpp
/*
  tutaj piszesz cały interfejs
*/
#endif


Pozdro !

komentarz 30 sierpnia 2015 przez niezalogowany
Dzięki wielkie za pomoc! Masz Okejkę :)
komentarz 30 sierpnia 2015 przez niezalogowany
Tylko te dyrektywy które mi wpisałes wkleiłem i one nie działają.
komentarz 30 sierpnia 2015 przez Wiciorny Ekspert (270,230 p.)

dla twojego pliku -- tak powinno być: to forum ma pomagać, więc ja tylko podałem Ci przykład dyrektywy a nie ten który masz zaimplementować :) 

tutaj poprawka 

C/C++

#ifndef FUNKCJA_H
#define FUNKCJA_H
/*
  tutaj piszesz cały interfejs
*/
#endif

komentarz 30 sierpnia 2015 przez niezalogowany
Aaa... Dobra, dobra... Rozumiem. Pierwsze kroki, mam problemy ze zrozumieniem niektórych rzeczy. Dzięki jeszcze raz za pomoc :)
komentarz 30 sierpnia 2015 przez criss Mędrzec (172,590 p.)
Jezli uzywamy #pragma once, to takie guardy są niepotrzebne. Nic nie stoi na przeszkodzie, żeby używac tego i tego jednocześnie, ale raczej bez sensu.
komentarz 30 sierpnia 2015 przez niezalogowany
Poczytam jeszcze trochę na ten temat. Chciałbym jeszcze wiedziec czy jeśli w funkcja.cpp zadeklaruję jakąś zmienną która nie jest argumentem to muszę ją zadeklarować w funkcja.h??
komentarz 30 sierpnia 2015 przez criss Mędrzec (172,590 p.)
W ciele funkcji? Nie.

Powiem c tak: pliki *.h są widoczne przed kompilacją. Ta wiedza z reguły wystarcza, żeby zrozumieć o co chodzi :D
komentarz 30 sierpnia 2015 przez niezalogowany
Czyli mogę je tylko zadeklarować w funkcja.cpp i nigdzie indziej, logiczne :)
0 głosów
odpowiedź 30 sierpnia 2015 przez Patrycjerz Mędrzec (192,320 p.)

No, bardzo dobrze, tylko w pliku funkcja.h mogłoby być jeszcze sprawdzanie, czy dany plik został dołączony wcześniej. Umożliwą ci to pewne dyrektywy preprocesora: http://cpp0x.pl/kursy/Kurs-C++/Dzielenie-kodu-na-kilka-plikow-zrodlowych/310.

0 głosów
odpowiedź 30 sierpnia 2015 przez Dorion300 Szeryf (90,250 p.)
Niestety ale nie poprawnie.

Znaczy działająco ale nie zalecane.

Powinno być:

http://wklej.org/hash/06990594f03/

http://wklej.org/hash/3fb1dd7aba8/

http://wklej.org/id/1786514/
komentarz 30 sierpnia 2015 przez niezalogowany
Po co string??
komentarz 30 sierpnia 2015 przez Dorion300 Szeryf (90,250 p.)
Przypadkowo dałem.

Wybacz.

już poprawiłem.

Wszystkie "usingi" i includy polecam w pliku .h

 

A w pliku .cpp tylko ciała funkcji
komentarz 30 sierpnia 2015 przez niezalogowany
ok, rozumiem
komentarz 30 sierpnia 2015 przez Wiciorny Ekspert (270,230 p.)
generalnie... zrobiłeś to samo, co miał :)... na tym poziomie nie trzeba unikać  REDUNDANCJI kodu  podczas dzielenia go na elementy. Bo skoleji nowa osoba zielona, z góry nauczy się- że tego się ZAWSZE NIE PODAJE :) a tak nie jest w programowaniu obiektowym, bo bywa że pliki trzeba przenieść- to nie jest dobre podejście.

Potem zielona osoba- nie bedzie wiedziec, dlaczego ma wysyp ;]
komentarz 30 sierpnia 2015 przez niezalogowany
No tak, lecz teraz mówisz o obiektowym C++ a ja jeszcze do niego nie dotarłem, naczy się wiem co to jest i jak wygląda i umiem zrobić klasę i obiekt ale jeszcze się w to nie bawię. Na razie chce tylko wiedzieć jak się to je i z czym.
0 głosów
odpowiedź 30 sierpnia 2015 przez DarkEliat Bywalec (2,810 p.)
Chyba dobrze, nie jestem pewien, ale wydaje mi się, że nie trzeba tworzyć obiektu. Pozdrawiam
komentarz 30 sierpnia 2015 przez niezalogowany
To tylko przykład dydaktyczny :)

Podobne pytania

+1 głos
1 odpowiedź 176 wizyt
pytanie zadane 31 sierpnia 2015 w C i C++ przez niezalogowany
+1 głos
1 odpowiedź 822 wizyt
pytanie zadane 19 lipca 2015 w C i C++ przez niezalogowany
0 głosów
1 odpowiedź 298 wizyt
pytanie zadane 26 marca 2020 w C i C++ przez Hubertius Bywalec (2,970 p.)

92,583 zapytań

141,434 odpowiedzi

319,669 komentarzy

61,966 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...