2. Związki pomiędzy obiektami

2.1. Zależność

Zależność to najsłabszy z omawianych związków. W ogólności zależność mówi, że jeden z obiektów wpływa na drugim, przy czym to wpływanie może mieć różny charakter. Może to być wywołanie metody, może to być utworzenie obiektu A przez obiekt B, itp... 

Zależność zazwyczaj jest jednokierunkowa, po polsku opisuje się je  frazą "...korzysta z...", "...oddziałuje na...", "...ma wpływ na...", "...tworzy...". 

Najczęściej zależność oznacza, że klasa A używa klasy B jako parametru dla jakiejś operacji.  Z tego względu zależność ma trywialną implementację: 


#include <iostream>

class A {
public:
    void dajGlos() const { std::cout << "Mówi A...\n"; }
    void robCos(const B& dawca) {dawca->dajGlos();}
};

class B {
public:
    void dajGlos() const { std::cout << "Mówi B...\n"; }
    void robCos(const A& dawca) { dawca->dajGlos(); }
};


int main() {
  A obA;
  B obB;
  obA.robCos(obB);
  obB.robCos(obA);
  
  return EXIT_SUCCESS;
}