Font size
WorksheetsC++ funkcijos: atviri klausimai
Total questions: 10
Worksheet time: 3600secs
Koks yra esminis skirtumas tarp funkcijos deklaracijos (prototipo) ir funkcijos apibrėžimo (definicijos) C++ kalboje? Kodėl deklaracija dažnai yra būtina?
Paaiškinkite, kada funkcijos grąžinimo tipas (angl. return type) turėtų būti void ir kada turėtų būti konkretus duomenų tipas (pvz., int, double ar string). Pateikite po pavyzdį.
Apibūdinkite dviejų pagrindinių parametrų perdavimo mechanizmų skirtumus: perdavimas pagal reikšmę (pass-by-value) ir perdavimas pagal nuorodą (pass-by-reference). Kokiais atvejais geriau naudoti nuorodą?
Kas yra numatytieji argumentai (default arguments) C++ funkcijose ir kokios yra taisyklės juos deklaruojant? Parašykite funkcijos prototipo pavyzdį su numatytuoju argumentu.
Tarkime, turite funkciją, kuri priima didelį objektą (pvz., 1MB dydžio vector<int>). Koks būtų efektyviausias būdas perduoti šį objektą, jei funkcija jo neturi keisti? Paaiškinkite, kodėl šis būdas geresnis nei perdavimas pagal reikšmę.
Kam C++ funkcijų parametruose naudojamas raktinis žodis const? Kokią apsaugą tai suteikia ir kokio tipo parametrams tai yra ypač aktualu?
Paaiškinkite, kodėl mažoms, dažnai kviečiamoms funkcijoms verta naudoti raktinį žodį inline.
inline funkcija yra užuomina C++ kompiliatoriui, kad jis gali pabandyti įterpti visą funkcijos kodą tiesiai į kiekvieną kvietimo vietą (vietoje įprasto šuolio į funkciją). Pavyzdys: Svarstote, ar šią funkciją pažymėti inline: inline int IvertintiKvadrata(int x) { return x * x; } Kokie yra du pagrindiniai privalumai ir trūkumai, susiję su šios funkcijos žymėjimu inline?
Kas nutinka su funkcijose deklaruotais lokaliais kintamaisiais (pvz., int x;), kai funkcija baigia darbą ir grąžina reikšmę? Paaiškinkite jų gyvavimo ciklo (angl. scope) principą.
Kokia yra pagrindinė raktinio žodžio return funkcija (be reikšmės grąžinimo)? Ar funkcija gali turėti kelias return komandas? Atsakymą pagrįskite.
Nors nenaudojame nuorodos, kaip galėtume pakeisti du int tipo kintamuosius, perduodamus funkcijai, naudodami rodykles (pointers) kaip parametrus? Parašykite funkcijos prototipą ir paaiškinkite rodyklių panaudojimą.
