Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Razna početnička pitanja iz C++-a

[es] :: C/C++ programiranje :: C/C++ za početnike :: Razna početnička pitanja iz C++-a

[ Pregleda: 2733 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

R A V E N
Mirza Beglerović Raven
Tuzla

Član broj: 36142
Poruke: 1629
91.191.8.41

Sajt: NietzscheSource.Org


+101 Profil

icon Razna početnička pitanja iz C++-a18.06.2009. u 13:09 - pre 179 meseci
Pitanje 1:
Koliko puta se u ovom kodu poziva copy konstruktor? Riječ je o klasi.

Code:
Widget f(Widget u)
{ Widget v(u);
  Widget w=v;
  return w;
}

main()
{ Widget x;
  Widget y=f(f(x));
}


Odgovor: 7 puta. Ja sam odgovorio: 4 puta. Meni ustvari nije do kraja proces koji se odvija ovdje. Ja sam shvatio da:

prvo se deklariše i definiše funkcija koja prima i vraća klasu tipa Widget. U funkciji se kreira još jedna klasa tipa Widget i imena v koju se kopira sadržaj u, što je prvo kopiranje. Onda se kreira još jedna klasa tipa Widget i imena w u koju se kopira sadržaj v, što je drugo kopiranje. Funkcija se u glavnom programu poziva dva puta, dakle ukupno imamo 4 kopiranja, odnosno poziva copy konstruktora.

[Ovu poruku je menjao R A V E N dana 18.06.2009. u 14:36 GMT+1]
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Razna početnička pitanja iz C++-a18.06.2009. u 13:37 - pre 179 meseci
1. poziva se f(x), x se kopira u u
2. v se dobija kopiranjem od u
3. w se dobija kopiranjem od v
4. vraća se vrednost funkcije, w, koja se kopira negde na stek (možda i ne, možda se ide direktno na sledeći korak, to zavisi od implementacije u kompajleru)
5. ponovo se poziva funkcija f sa onim što je na steku iz prethodnog koraka, i to se kopira u u
6. ponovo se v dobija kopiranjem od u
7. ponovo se w dobija kopiranjem od v
8. ponovo se vraća vrednost funkcije, w, koja se kopira negde na stek (a možda i ne)
9. ono što je na steku se kopira u y

E sad, čini se da profa ne zna da povratna vrednost funkcije može da ide preko steka, a može da se dodeljuje i direktno, zavisno od implementacije. A možda vam je i napomenuo kako on vidi taj slučaj, tako da odgovor što se njega tiče i jeste sedam.
 
Odgovor na temu

R A V E N
Mirza Beglerović Raven
Tuzla

Član broj: 36142
Poruke: 1629
91.191.8.41

Sajt: NietzscheSource.Org


+101 Profil

icon Re: Razna početnička pitanja iz C++-a18.06.2009. u 13:49 - pre 179 meseci
Stvar je u tome da nije ovo po tome kako je profesor predavao ili "hranio" "slijepe" studente kašičicom gradivom iz C++-a (bez imalo namjere da budem sarkastičan), nego sam ja "pješke" krenuo da učim C++ iz knjige Schaum's Outline of Theory and Problems of Programming With C++, 2nd Edition, odakle je i ovaj zadatak (stranica 249., 10.15). Ustvari sam sebi time i otežao, ali nema veze,ovako mi je prijatnije učiti kada radim samostalno.

Hvala ti, Mihajlo, na odgovoru. Ako sam dobro razumio, ono što si ti opisao govori o 9 kopiranja, a kada ide direktno, ima 7 kopiranja?
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Razna početnička pitanja iz C++-a18.06.2009. u 13:52 - pre 179 meseci
Da.
 
Odgovor na temu

R A V E N
Mirza Beglerović Raven
Tuzla

Član broj: 36142
Poruke: 1629
91.191.8.44

Sajt: NietzscheSource.Org


+101 Profil

icon Re: Razna početnička pitanja iz C++-a05.10.2009. u 23:48 - pre 176 meseci
Pitanje 2:

Možda je ovo najbolji forum da postavim ovakvo pitanje, mada nije direktno vezano za C++.

Imam dvije .MP3 datoteke. Obadvije otvorim u Notepadu++ (popularni editor tekstualnih datoteka). Naravno, obadvije datoteke se prikažu kao hrpa bizarnih znakova. Onda izaberem komandu za uspoređivanje dviju datoteka i Notepad++ prijavi da su ta dva .MP3-a identična. Da li je ovo pouzdan način dobivanje te informacije, s obzirom da je riječ o binarnim datotekama?

Interesuje me konkretno za Notepad++, ne bih da instaliram neki specijalni program.
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Razna početnička pitanja iz C++-a06.10.2009. u 09:59 - pre 176 meseci
Notepad++ gleda fajlove kao da su tekstualni. To znači da je za njega novi red bilo šta od sledećeg: <CR>, <LF>, <CR><LF>. To znači da ako se dva fajla razlikuju utoliko što u jednom stoji jedno od ova tri, a u drugom drugo, Notepad++ će reći da su identični. Binarno poređenje možeš da izvedeš iz Command Prompta, komanda je fc, opcija za binarno je /b:

> fc /b <prvi fajl> <drugi fajl>
 
Odgovor na temu

Goran Arandjelovic
Beograd

Član broj: 29116
Poruke: 387
*.dynamic.sbb.rs.



+9 Profil

icon Re: Razna početnička pitanja iz C++-a06.10.2009. u 13:25 - pre 176 meseci
A i uvek možeš da napišeš svoj mali program koji poredi dve datoteke (čitaj: da sam recimo napišeš nešto kao fc koju ti je Mihajlo pomenuo). Ne znam da li si zbog toga postavio pitanje ovde...
 
Odgovor na temu

R A V E N
Mirza Beglerović Raven
Tuzla

Član broj: 36142
Poruke: 1629
91.191.8.44

Sajt: NietzscheSource.Org


+101 Profil

icon Re: Razna početnička pitanja iz C++-a07.10.2009. u 21:27 - pre 176 meseci
Hvala vam obojici na odgovorima, a pitao sam ovdje jer sam očekivao da ću dobiti najbrži i najprecizniji odgovor - ipak je to problematika koja je najviše bliska C++-u i njegovom rukovanju sa datotekama.

A to za fc komandu je sjajna stvar.
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Razna početnička pitanja iz C++-a

[ Pregleda: 2733 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.