7.6. Opakování

Cvičení
Cvičení

Úkol k textu

Zadání 1)

Mějme definován tento kód.
#include <iostream>

class mybase {
  int a, b;
public:
  int c;
  void setab(int i, int j) { a = i; b = j; }
  void getab(int &i, int &j) { i = a; j = b; }
};

class derived1 : public mybase {
// ...
};

class derived2 : private mybase {
// ...
};

int main()
{
  derived1 o1;
  derived2 o2;
  int i, j;

  // ...
}


Které z následujících příkazů jsou v rámci funkce main() platné?
o1getab(i, j);
o2getab(i, j);
o1.c = 10;
o2.c = 10;


Řešení

Úkol k textu

Zadání 2)

Mějme základní třídu Base a odvozenou třídu Derived. Napište program, který ukáže v jakém pořadí jsou spouštěny konstruktory a destruktory v případě, že Derived dědí třídu Base.

Řešení

Úkol k textu

Zadání 3)

Co zobrazí následující program?
#include <iostream.h>

class A {
public:
  A() { cout << "Constructing A\n"; }
  ~A() { cout << "Destructing A\n"; }
};

class B {
public:
  B() { cout << "Constructing B\n"; }
  ~B() { cout << "Destructing B\n"; }
};

class C : public A, public B {
public:
  C() { cout << "Constructing C\n"; }
  ~C() { cout << "Destructing C\n"; }
};

int main()
{
  C ob;

  return 0;
}


Řešení
flash\test6.swf
Test
Kliknutím na ikonu spustíte test.