5.2. Ukazatele objektů a aritmetika ukazatelů

Časová náročnost
Časová náročnost: 5 minut

Když je použit ukazatel objektu, pak je na jeho členy ukazováno namísto tečkového operátoru přes šipkový operátor.

upozornění

Aritmetika ukazatelů využívající ukazatel objektu je stejná jako u ostatních typů dat - provádí se ve vztahu k typu objektu. Když je například ukazatel objektu dekrementován, ukazuje na předcházející objekt.

Následující příklad ukazuje použití aritmetiky ukazatelů. Pokaždé, když bude ukazatel inkrementován, bude ukazovat na následující prvek pole.

src/5_4.cpp
Příklad 5.4.
#include <iostream.h>

class samp {
  int a, b;
public:
  samp(int n, int m) { a = n; b = m; }
  int get_a() { return a; }
  int get_b() { return b; }
};

int main()
{
  samp ob[4] = {
    samp(1, 2), 
    samp(3, 4), 
    samp(5, 6), 
    samp(7, 8)
  }; 
  int i;

  samp *p;
  p = ob; // pocatecni adresa pole

  for(i=0; i<4; i++) {
    cout << p->get_a() << ' ';
    cout << p->get_b() << "\n";
    p++;  // nasledujici objekt
  }

  cout << "\n";

  return 0;
}