Вы находитесь на странице: 1из 4

Objektno orijentirano programiranje

1. kolokvij
20. svibanj 2002. 1. Oznaite neispravne deklaracije funkcija: a) void fn1(char* str, int x=0, int y=0); b) void fn2(int x=0, int y=0, char* str); 2. Za zadani prototip funkcije:
void fn3(double a, double b, int ax=0, int ay=0);

oznaite neispravne pozive: a) fn3(2.5, 3.0, , 5); b) fn3(0, 5); c) fn3(10.9, 7, 3); 3. to ispisuje sljedei program:
#include <iostream> int v = 10; int &a = v; int main() { using namespace std; a += 10; v -= 5; cout << v+a << endl; return 0; }

4. Oznaite sintaksno neispravne definicije funkcija: a) void inc(int i) { i++; } b) void inc(int* i) { (*i)++; } c) void inc(int& i) { i++; } d) void inc(const int& i) { i++; } 5. Neka je zadana klasa A:
class A { public: A(int a, int b) : a(a), b(b) {} protected: int a, b; };

Napiite klasu B koja je izvedena iz klase A i sadri public funkciju koja vraa umnoak lanova a i b. 6. to ispisuje sljedei program:
#include <iostream> using namespace std; class A { int a; public: A(int a) : a(a) { cout << "A" << endl;} ~A(){ cout << "~A" << endl; } }; class B: public A { public: B(int a) : A(a) { cout << "B" << endl;} ~B(){ cout << "~B" << endl; } };

class D: public A { public: D(int a) : A(a) { cout << "D" << endl;} ~D(){ cout << "~D" << endl; } }; class C { D d; B b; public: C() : b(1), d(1) { cout << "C" << endl;} ~C(){ cout << "~C" << endl;} }; int main() { C c; }

7. Implementirajte funkciju: void A::fa();


#include <iostream> using namespace std; void f(const A& a){ std::cout << a.n; } class A { public: int n; void fa(); }; int main (){ A a; a.fa(); }

8. to ispisuje sljedei program:


#include <iostream> using namespace std; class A { public: A() { cout << "A"; } ~A() { cout << "~A"; } }; int main(){ A arr[3]; cout << endl; A* p = new A[2]; cout << endl; }

9. to ispisuje sljedei program:


#include <iostream> #include <cstdio> using namespace std; class A { public: A() { printf("A"); } ~A() { printf("~A"); } }; class B { public: static A a; B() { cout << "B"; } ~B() { cout << "~B"; } };

A B::a; int main(){ cout << "<"; { B b; } cout << ">"; }

10. Oznaite sintaksno neispravne linije:


class A {}; class B : public A {}; int main(){ A a; B b; A* pa = &b; A& ra = b; B* pb = &a; B& rb = a; }

Rjeenja
1. b) 2. a) 3.
30

4. d) 5.
class B : public A { public: B(int a, int b) : A(a, b){}: int umn() { return a*b; } };

6.
A D A B C ~C ~B ~A ~D ~A

7.
void A::fa() { f(*this); }

8.
AAA AA ~A~A~A

9.
A<B~B>~A

10.
B* pb = &a; B& rb = a;

Вам также может понравиться