title: What is the "is-implemented-in-terms-of" relationship, and when should I use it?
body: <p>I learned that in OOP we can use inheritance so we can make classes derived from the base ones. We call this "IS-A relationship" eg: a man is derived from class human.</p>
  
  <p>Also there's containment which means a class contains objects of another class types so we can say a car has wheel. we call this "HAS-A relationship".</p>
  
  <p>There's another relationship which is called "IS-IMPLEMENTED-IN-TERMS-OF" and I'm not sure I understand it. Does it mean private inheritance??</p>
  
  <pre><code>#include &lt;iostream&gt;
  using namespace std;
  
  class A {
  };
  
  class B : public A {
  }; // is-a relationship
  
  class C {
      A&amp; aObj;
  }; // C has-a relationship
  
  // is implemented in terms of?? and how and when?
  
  int main()
  {
      A a;
      B b; // b is a an A like man is-a human
  
      C c; // c contains an A's object so C has-a an A's part
  
      cout &lt;&lt; endl;
      return 0;
  }
  </code></pre>