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

Różnica między deklaracją a definicją [Łopatologicznie]

Object Storage Arubacloud
+2 głosów
13,903 wizyt
pytanie zadane 5 sierpnia 2015 w C i C++ przez JavaStique Początkujący (420 p.)

Mam problem ze zrozumieniem tych pojęć. Czy ktos byłby tak miły i wyłożył mi to po chłopsku na jakimś zgrabnym przykłądzie? Jakoś mój mózg nie może przetrawic wyjaśnienia zawartego w książce Symfonia C++. sad

komentarz 26 lipca 2016 przez itcloud Gaduła (3,380 p.)

To ja się podczepię. Po co w takim razie ta deklaracja? Deklarować coś, z czego nie skorzystamy dalej? A jak skorzystamy, to jednocześnie po co tworzyć deklaracje, jak można od razu zaprojektować funkcję z jej ciałem.

 

Tu jest napisane, czemu stosuje się deklaracje:

http://edu.pjwstk.edu.pl/wyklady/pro/scb/PRG2CPP_files/node65.html

Tyle że wynika z tego, że deklaracja jednak musi być zawsze, a nie tylko jak podano wyżej w przykładzie tego posta - dajemy definicje która jest już deklaracją.

2 odpowiedzi

+10 głosów
odpowiedź 5 sierpnia 2015 przez niezalogowany
wybrane 5 sierpnia 2015 przez JavaStique
 
Najlepsza
Co nie :D Ja też to zrozumiałem o wiele później.

Ale już fajnie tłumaczę: zadeklarowanie np. funkcji, to powiedzenie, że taka oto funkcja istnieje i można ją wykorzystać. Zdefiniowanie funkcji, to powiedzenie, co ta konkretna funkcja ma robić. No i czemu definicja może być jednocześnie deklaracją? Bo możesz zrobić tak:
int funkcja(); //deklaracja funkcji
int funkcja() //definicja funkcji
{
     //cialo funkcji
}
A możesz też tak:
int funkcja() //definicja (i jednocześnie deklaracja) funkcji
{
     //cialo funkcji
}
W pierwszym przypadku najpierw była deklaracja funkcji, a potem jej definicja. W drugim przypadku deklaracja (stworzenie) i definicja (ciało) tejże funkcji nastąpiła jednocześnie!

Mam nadzieję, że już wszystko zrozumiałeś i wytłumaczyłem to "łopatologicznie" ;)

Pozdrawiam i życzę miłej lektury!
komentarz 5 sierpnia 2015 przez JavaStique Początkujący (420 p.)

Teraz widzę xD. Dzięki serdeczne za pomoc. yes

komentarz 5 sierpnia 2015 przez niezalogowany
Przejrzałeś na oczy, synu... A to może przez tą twoją opaskę? ;D

Nie ma sprawy, pozdrawiam! ;)
komentarz 26 lipca 2016 przez itcloud Gaduła (3,380 p.)
To ja się podczepię. Po co w takim razie ta deklaracja? Deklarować coś, z czego nie skorzystamy dalej? A jak skorzystamy, to jednocześnie po co tworzyć deklaracje, jak można od razu zaprojektować funkcję z jej ciałem.

 

Tu jest napisane, czemu stosuje się deklaracje:

http://edu.pjwstk.edu.pl/wyklady/pro/scb/PRG2CPP_files/node65.html

Tyle że wynika z tego, że deklaracja jednak musi być zawsze, a nie tylko jak podano wyżej w przykładzie tego posta - dajemy definicje która jest już deklaracją.
komentarz 26 lipca 2016 przez niezalogowany
No, ja na przykład najpierw deklaruję funkcję, a pod main()-em ją definiuję, bo to wygląda przejrzyściej. Na górze masz deklaracje, czyli wszystkie funkcje, żeby lepiej było to ogarnąć, a na dole masz ich definicje. Tutaj chodzi bardziej o porządek w swoim kodzie ;) A jeśli piszesz program obiektowo, to w jednym pliku jest klasa z deklaracjami funkcji, a w drugim są definicje tych funkcji.

Tak, deklaracja musi być zawsze. Deklaracja jest albo sama, albo od razu z zainicjowaniem czymś tej zmiennej (czyli mówiąc krócej, definicja).
komentarz 26 lipca 2016 przez itcloud Gaduła (3,380 p.)

Zaraz zaraz, kliknąłeś na ten link który podałem? Facet pokazuje definicje będące (z tego co tu piszecie) jednocześnie deklaracjami (nagłówek funkcji aka deklaracja + definicja czyli ciało funkcji). No i pisze, że musi być oprócz tego również deklaracja, bo jak funkcja f1 wywoła wewnątrz funkcję f2 która jeszcze nie została przedstawiona kompilatorowi z ciałem swoim, to się wykrzaczy.

Tak, deklaracja musi być zawsze. Deklaracja jest albo sama, albo od razu z zainicjowaniem czymś tej zmiennej (czyli mówiąc krócej, definicja).

komentarz 26 lipca 2016 przez niezalogowany
No, teraz popatrzyłem na ten link. No i tak też ma być. Żeby fun1 wiedziała, że jest takie coś, jak fun2, to trzeba ją najpierw zadeklarować, nad fun1. Więc wtedy deklaracja jednej z funkcji musi być.
–1 głos
odpowiedź 5 sierpnia 2015 przez ProgramistaStepek Nałogowiec (27,020 p.)
edycja 5 sierpnia 2015 przez ProgramistaStepek
Krótko mówiąc: Deklarowanie to w programowaniu tworzenie, inaczej zadeklarować = stworzyć(np.deklarujemy zmienne, obiekty itd.)  natomiast Definiowanie to dodawanie wartości.
komentarz 5 sierpnia 2015 przez niezalogowany
Nie żeby coś, ale wprowadzasz w błąd, bo to jest zupełnie na odwrót :D Deklaracja to stworzenie ;)
komentarz 5 sierpnia 2015 przez Patrycjerz Mędrzec (192,320 p.)

Prosimy o nie wygłaszanie herezji! laugh

komentarz 5 sierpnia 2015 przez niezalogowany
Hah :D Oj nie przesadzaj ;) Może go jeszcze spalimy na stosie ;D
komentarz 5 sierpnia 2015 przez Patrycjerz Mędrzec (192,320 p.)

Nie, nie lubię przemocy, jestem pacyfistą angel 

komentarz 5 sierpnia 2015 przez ProgramistaStepek Nałogowiec (27,020 p.)
Eh, starasz się komuś pomóc i nieopatrznie wprowadzasz w błąd :) No cóż przepraszam i już się poprawiam.
komentarz 5 sierpnia 2015 przez Patrycjerz Mędrzec (192,320 p.)

No cóż, mi też się kiedyś często myliły te dwa pojęcia, choć wiedziałem, czym się różnią. Po iluś razach mylenia się wpadło mi to do głowy i chyba nie zamierza wypaść laugh

Podobne pytania

0 głosów
2 odpowiedzi 962 wizyt
0 głosów
1 odpowiedź 607 wizyt
pytanie zadane 21 sierpnia 2017 w C i C++ przez Jakub 0 Pasjonat (23,120 p.)
0 głosów
1 odpowiedź 336 wizyt
pytanie zadane 29 listopada 2018 w C i C++ przez ciocialol Nowicjusz (180 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 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!

...