PITANJA ZA II KOLOKVIJUM NASLJEĐIVANJE, VIRTUELNE FUNKCIJE I POLIMORFIZAM

Similar documents
PITANJA ZA II KOLOKVIJUM KLASE I OBJEKTI

Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi

Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo

CS 162, Lecture 25: Exam II Review. 30 May 2018

PROGRAMIRANJE. Amir Hajdar

OBJEKTNO ORIJENTISANO PROGRAMIRANJE

Objektno Orijentisano Programiranje - C++

Nasleđivanje i izvedene klase u jeziku C++

VRIJEDNOSTI ATRIBUTA

pojedinačnom elementu niza se pristupa imeniza[indeks] indeks od 0 do n-1

Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući Java konstrukt

f2() f6() main() f3() f7() f4()

Lekcija 09 Sakrivanje podataka, statički članovi, preklapanje funkcija i operatora. Miljan Milošević

UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET

PREDMET. Osnove Java Programiranja. Čas JAVADOC

Visoka tehnička škola Niš

Programiranje III razred

Java IMI PMF KG OOP 09 AKM. Objekti i klase

Uputstvo za korišćenje logrotate funkcije

Računarske osnove Interneta (SI3ROI, IR4ROI)

Vidljivost TipPovratneVrednosti ImeFunkcije (NizParametara) { TeloFunkcije }

Java. Ugnježdeni tipovi IMI PMF KG OOP 09 AKM. najveći deo teksta je preuzet sa slajdova Prof. Dragana Milićeva (ETF Bg) namenjenih pedmetu OOP2

Veliki računski zadaci mogu se razbiti u manje delove i time se omogućava ljudima da iskoriste ono što su neki drugi već uradili, umesto da počinju

Vežbe - XII nedelja PHP Doc

Lekcija 11 Polimorfizam, Apstrakcija, Šabloni. Miljan Milošević

Visoka tehnička škola Niš

2. Linijska algoritamska struktura

x y = z Zadaci - procedure

Oracle Proprietary Joins Za upite nad više od jedne tabele korišćenjem Oracle proprietary sintakse koristiti join uslov u WHERE izrazu:

Učitati cio broj n i štampati njegovu recipročnu vrijednost. Ako je učitan broj 0, štampati 1/0.

PROGRAMIRANJE. Teme. Packages Reference objekata Inheritance nasljeđivanje Exceptions. Amir Hajdar

12. Uskladištene procedure (Stored Procedures)

Windows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje. Office 2013 / Office 365

Prirodno-matematički fakultet u Nišu Departman za fiziku. dr Dejan S. Aleksić Programiranje u fizici

Programske paradigme Funkcionalna paradigma

Objektno orijentirano programiranje proširuje objektnotemeljeno mogućnošću uvoñenja odnosa izmeñu tipova i njihovih podtipova

Uvod u programiranje - vežbe. Kontrola toka izvršavanja programa

NIZOVI.

Mašinska vizija. Dr Nenad Jovičić tnt.etf.rs/~mv

Algoritmi i strukture podataka 2. Čas, Uvod u C++

Programiranje III razred

C++ minitutorial. Osnovni elementi i koncepti programskog jezika C++ uz primere

/*#include <iostream> // Prvi zadatak sa integralnomg ispita

Funkcije, prenos parametara i dinamička alokacija memorije

Lekcija 07 C++ funkcije, stringovi, imenski prostor, memorija i fajlovi. Miljan Milošević

Lekcija 02 Uslovni iskazi i petlje, Funkcije. Miljan Milošević

Uvod u relacione baze podataka

VHDLPrimeri Poglavlje5.doc

Inheritance, and Polymorphism.

Uputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj list.

b) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end.

VB komande. Programiranje 1

Case Study Hrvatska pošta: Korisničko iskustvo iz snova. Tomislav Turk Samostalni sistem inženjer, Combis d.o.o. Zagreb,

Izrada VI laboratorijske vježbe

Događaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi.

Prva recenica. Druga recenica.

Java Server Pages. 31-Dec-12

Ime ograničenja je clients_client_num_pk. Ono inforsira biznis pravila po kojem client_number je PK u clients tabeli Naming Constraints

Ovde će se raditi na funkcijama konverzija: konverzija tipa datuma u znak tip i obrnuto, konverzija broja u karakter tip i obrnuto

NEKE OBJEKTNE OSOBINE ORACLE PL/SQL 9i JEZIKA (usporedba sa OOPL jezicima C++, Eiffel i Java)

namespace spojneice { public partial class Form1 : Form { public Form1() { InitializeComponent(); }

VDSL modem Zyxel VMG1312-B10A/B30A

CSS CSS. selector { property: value; } 3/20/2018. CSS: Cascading Style Sheets

Uputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0

PVC Eco. Eco Prozori i Balkonska Vrata Bela Boja Dezeni drveta su 40% skuplji

Practice for Chapter 11

Polymorphism Part 1 1

Programiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010

UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a

Strukture Klase i OOP

Informacioni sistemi i baze podataka

Ugradjena promenljiva ans cuva poslednju vrednost koja nije dodeljena ni jednoj promenljivoj >> ans+3

Binarne hrpe. Strukture podataka i algoritmi VJEŽBE 26. siječnja / 133

Z1. Dati RDF graf predstavljen u JSON-LD sintaksi potrebno je grafički predstaviti u skladu sa RDF notacijom. (5 poena)

Dežurni nastavnik: Kolokvijum traje 1.5 sat, prvih sat vremena nije dozvoljeno napuštanje kolokvijuma. Upotreba literature nije dozvoljena.

... ; ako je a n parno. ; ako je a n neparno

Sberbank Business Online na Mozilla FireFox

Programski jezik JAVA PREDAVANJE

TEHNIKA I INFORMATIKA U OBRAZOVANJU

Modern C++ for Computer Vision and Image Processing. Igor Bogoslavskyi

Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb,

Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje. WEB programiranje HTML & CSS

public static void main(string []args) { System.out.println("Hello World"); /* prints Hello World */

Objektno orijentisano programiranje

Outline. User-dened types Categories. Constructors. Constructors. 4. Classes. Concrete classes. Default constructor. Default constructor

PVC Eco. Eco Prozori i Balkonska Vrata Bela Boja Dezeni drveta su 40% skuplji

Objektno orijentisano programiranje u realnom vremenu na jeziku C++

24/03/2018. Deklaracija promenljivih. Inicijalizacija promenljivih. Deklaracija i inicijalizacija promenljivih

CMSC 202 Midterm Exam 1 Fall 2015

Aspektno programiranje u Javi. AOP + AspectJ

PROGRAMIRANJE. Objekt-orjentirano programiranje (OOP)

Funkcionalna specifikacija

Objektno orijentirano programiranje. Auditorne vježbe

NISKE (stringovi) u C-u: podsećanje. 1. Primer programa koji uvodi niske karaktera terminisane nulom

KLASIFIKACIJA JELENA JOVANOVIĆ. Web:

MICROSOFT LINQ. INFOTEH-JAHORINA Vol. 9, Ref. F-9, p , March Ognjen Borovina, Elektrotehnički fakultet, Istočno Sarajevo

Programming in C++: Assignment Week 6

Osnove programskog jezika C#

The American University in Cairo Department of Computer Science & Engineering CSCI &09 Dr. KHALIL Exam-I Fall 2011

16. Sigurnije programiranje

Transcription:

PITANJA ZA II KOLOKVIJUM NASLJEĐIVANJE, VIRTUELNE FUNKCIJE I

1. Definicija svake klase sadrzi kljucnu rec iza koje se navodi ime klase: class public extends

2. Kada je funkcija clanica definisana izvan definicije klase, zaglavlje funkcije mora da sadrzi ime klase i, iza koje sledi ime funkcije koja povezuje funkciju clanicu sa definicijom klase. :: public class

3. Podaci clanovi ili funkcije clanice deklarisani nakon kljucne reci private dostupni su funkcijama clanicama klase u kojoj su deklarisani. tacno netacno

4. Promenljive deklarisane u telu neke funkcije clanice zovu se podaci clanovi i mogu se koristiti u svim funkcijama clanicama klase. Tacno Netacno

5. Pokazivaci na razlicite tipove nikada se ne mogu dodeljivati jedan drugom bez konverzije. tacno netacno

6. Clanovi klase deklarisani kao dostupni su svuda gde je objekat klase dostupan. public protected private

7. Operator moze se koristiti za dodelu objekta neke klase drugom objektu iste klase. = == konstruktor

8. Funkcija koja nije clanica klase mora se deklarisati kao prijatelj klase da bi mogla da pristupi privatnim podacima clanovima klase. tacno netacno

9. Kljucna rec oznacava da se objekat ili promenljiva ne mogu menjati nakon inicijalizacije. const static volatile

10. Kljucna rec oznacava definiciju preklopljene operatorske funkcije. operator new static

11. U jeziku C++ mogu se preklopiti samo postojeci operatori. Tacno Netacno

12. Funkcije koje se mogu redefinisati deklarisu se pomocu kljucne reci virtual const public

13. Dati rezultat izvršavanja sledećeg koda. #include <iostream> using namespace std; class ParentClass { public: int id; ParentClass(int id) { this->id = id; void print() { cout << id << endl; ; class ChildClass: public ParentClass { public: int id; ChildClass(int id): ParentClass(1) { this->id = id; ; int main() { ChildClass c(2); c.print(); return 0; 0 1 2 ništa

14. Neka su Circle i Rectangle klase izvedene od klase GeometricObject i neka je zadato: void displaygeometricobject(geometricobject shape){ cout << shape.tostring() << endl; Naznačiti validne pozive date funkcije. displaygeometricobject(geometricobject("black", true)); displaygeometricobject(circle(5)); displaygeometricobject(rectangle(2, 3)); displaygeometricobject(string());

15. Dati rezultat izvršavanja sledećeg koda. #include <iostream> using namespace std; class B { public: ~B() { cout << "B"; ; class A: public B { public: ~A() { cout << "A"; ; int main() { A a; return 0; AB BA A B AA

16. Šta je pogrešno u sledećem kodu? class Fruit { public: Fruit(int id) { ; class Apple: public Fruit { public: Apple() { ; Program c e se prevesti (engl. compile) ako se za Fruit doda konstruktor bez argumenata Program ima grešku prevođenja, jer Fruit nema konstruktor bez argumenata. Program c e se prevesti ako se izbriše konstruktor za Fruit. Program c e se prevesti ako se zameni Apple() sa Apple(): Fruit(4)

17. Koje su od sledećih izjava tačne? Za redefiniranje funkcije, funkcija mora biti definisana u izvedenoj klasi koristec i isti potpis (engl. signature) i povratni tip (engl. return type) kao u svojoj osnovnoj klasi. Preklapanje (engl. overloading) funkcije omoguc ava više od jedne funkcije s istim imenom, ali s različitim potpisima koji prave razliku između njih Ako se dvije funkcije razlikuju se samo po tipu povratne vrednosti to je greška. Privatna funkcija ne može biti redefinisana. Ako funkcija, definisana u izvedenoj klasi, je privatna u osnovnoj klasi, dvije funkcije su potpuno nepovezane.

18. Koje su od sledećih izjava tačne? Funkcija može biti preklopljena (engl. overloaded) u istoj klasi. Funkcija može biti redefinisana u istoj klasi. Ako je funkcija vrši preklapanje druge funkcije, te dvije funkcije moraju imati isti potpis. Ako je funkcija redefinisana drugoj funkciji, te dvije funkcije moraju imati isti potpis. Konstruktori izvedene klase se mogu naslediti od osnovne klase Destruktori izvedene klase se mogu naslediti od osnovne klase

19. Za poziv tostring() funkcije koja definisana u GeometricObject iz Circle objekta c, koristiti: super.tostring() c.super.tostring() c.geometricobject::tostring() c->geometricobject::tostring()

20. Dati rezultat izvršavanja sledećeg koda? #include <iostream> using namespace std; class C { public: string tostring() { return "C"; ; class B: public C { string tostring() { return "B"; ; class A: public B { string tostring() { return "A"; ; void displayobject(c* p) { cout << p->tostring(); int main() { displayobject(&a()); displayobject(&b()); displayobject(&c()); return 0; ABC CBA AAA BBB CCC

21. Dati rezultat izvršavanja sledećeg koda. #include <iostream> using namespace std; class C { public: virtual string tostring() { return "C"; ; class B: public C { string tostring() { return "B"; ; class A: public B { string tostring() { return "A"; ; void displayobject(c* p) { cout << p->tostring(); int main() { displayobject(&a()); displayobject(&b()); displayobject(&c()); return 0; ABC CBA AAA BBB CCC

22. Dati rezultat izvršavanja sledećeg koda. #include <iostream> using namespace std; class C { public: string tostring() { return "C"; ; class B: public C { string tostring() { return "B"; ; class A: public B { virtual string tostring() { return "A"; ; void displayobject(c* p) { cout << p->tostring(); int main() { displayobject(&a()); displayobject(&b()); displayobject(&c()); return 0; ABC CBA AAA BBB CCC

23. Dati rezultat izvršavanja sledećeg koda. #include <iostream> #include <string> using namespace std; class Person { public: void printinfo() { cout << getinfo() << endl; virtual string getinfo() { return "Person"; ; class Student: public Person { public: virtual string getinfo() { return "Student"; ; int main() { Person().printInfo(); Student().printInfo(); Person Person Person Student Student Student Student Person

24. Koje su od sledećih izjava tačne? Ako je funkcija definisana kao virtualna u osnovnoj klasi, automatski je virtualna i u svim svojim izvedenim klasama. Nije potrebno dodavati ključnu reč u definiciji virtualne funkcije u izvedenoj klasi. Ako funkcija nec e biti redefinisana, efikasnije je bez njenog definisanja kao virtualne funkcije, jer je potrebno više vremena i resursa sistema za dinamičko povezivanje (engl. bind) virtualnih funkcija za vrijeme izvršavanja (engl. at runtime) Virtualna funkcija se može implementirati u nekoliko izvedenih klasa. C ++ dinamički povezuje (engl. bind) implementacije funkcije za vrijeme izvršavanja, što odlučuje stvarna klasa objekta koja je referencirana preko varijable Prevodilac pronalazi odgovarajuc u funkciju prema tipu parametra, broju parametara, te redosledu parametara u vrijeme prevođenja (engl. at compile time).

25. Analizirati sledeći kod: #include <iostream> using namespace std; class A { public: A() { t(); // cout << "i od A je " << i << endl; void t() { seti(20); virtual void seti(int i) { this->i = 2 * i; int i; ; class B: public A { public: B() { cout << "i od B je " << i << endl; virtual void seti(int i) { this->i = 3 * i; ; int main() { A* p = new B(); return 0; Konstruktor klase A nije pozvan. Konstruktor klase A se poziva i prikazuje "i od B je 0". Konstruktor klase A se poziva i prikazuje "i od B je 40". Konstruktor klase A se poziva i prikazuje "i od B je 60".

26. Koje je od sledećih apstraktna funkcija? virtual double getarea(); virtual double getarea() = 0; double getarea() = 0; double getarea();

27. Koje su od sledećih izjave tačne? Apstraktne klase se definišu korišc enjem ključne reči abstract. Klasa je apstraktna ako sadrži čistu virtuelnu funkciju. Apstraktna klasa je ista kao kao standardna klasa, osim što ne može kreirati objekte. Može se definisati apstraktna klasa čak i ako ne sadrži apstaktne funkcije

KRAJ!