title: bi-directional and uni-directional associations UML
body: <p>While I think I understand <code>aggregation</code> and <code>composition</code>, I am having difficulties understanding <code>bi-directional</code> and <code>uni-directional</code> association.
  I've read that with <code>bi-directional</code> association, both classes know about
  each other and with <code>uni-directional</code> association only one of the classes is aware
  of the relationship. However this explanation seems too abstract for me and I would
  like to know what this in particular means for my code and for the program I am writing.
  It would be very nice if you could, along with explanation, provide a simple example
  of how these two translate to code (I prefer c++, but it can be anything including pseudocode)</p>