Does C++ calls member object 's overloaded operator?
<pre><code> #include &lt;stdio.h&gt;

 class InnerOne {
     int m_iDummy;
     public:
     InnerOne(int iDummy) {
         m_iDummy=iDummy;
     }   

     InnerOne&amp; operator=(InnerOne &amp;obj) {
         printf("In InnerOne Operator=\n");
         m_iDummy = obj.m_iDummy;
         return *this;
     }   

 };  

 class OuterOne {
     InnerOne m_innerOne;
     public:
     OuterOne(int iVal) : m_innerOne(iVal) {
     }   

 };  

 int main() {
     OuterOne a(1);
     OuterOne b(2);
     a = b;
     return 1;
 }   
</code></pre>

<p>Will InnerOne 's operator = get called?
If yes then how and why?</p>
