int *const a = int const *b , is that true for obj ( obj *const a = obj const *b )?
<p>in this question they said that</p>

<p><a href="http://stackoverflow.com/questions/1143262/what-is-the-difference-between-const-int-const-int-const-int-const">what is the difference between const int*, const int * const, int const *</a></p>

<pre><code>const int * == int const *
</code></pre>

<p>OK this true </p>

<p>but when i use it in objects (in my case direct3ddevice and GUI Objects from CEGUI Library )</p>

<p>look at this </p>

<pre><code>void GUI_Menu::Add_Popup( MenuItem const *Parent ,const String &amp;Name )
{
    PopMenu.resize (Popup_Menu_ID+1 );
    PopMenu.at (Popup_Menu_ID) = static_cast &lt;PopupMenu*&gt;  (CEGUI::WindowManager::getSingletonPtr()-&gt;createWindow ("TaharezLook/PopupMenu" , Name));

    Parent-&gt;addChildWindow (PopMenu.at (Popup_Menu_ID)); 
    Popup_Menu_ID++ ;
} 
</code></pre>

<p>this code will compile error in the following line  </p>

<pre><code>Parent-&gt;addChildWindow (PopMenu.at (Popup_Menu_ID));
</code></pre>

<p>i will explain why it's wrong (in my point) and tell is this false or true ;</p>

<p>MenuItem is a class contain data and function , and those data must updated in needed </p>

<p>as example ( settext , color , size ....etc ) ; </p>

<p>now if i create new MenuItem Obj like this ; </p>

<pre><code>MenuItem const *Obj
</code></pre>

<p>what is mean that...OK </p>

<p>this mean that we can't change the data inside the obj but we can  change the address<br>
in other world </p>

<p>value is constant but the address is not so , if we want to change color , size ...etc we can't and we get error ...............is this true ;</p>

<p>in other hand we have the same code but with change the constant according. </p>

<pre><code>void GUI_Menu::Add_Popup( MenuItem *const Parent ,const String &amp;Name )
{
    PopMenu.resize (Popup_Menu_ID+1 );
    PopMenu.at (Popup_Menu_ID) = static_cast &lt;PopupMenu*&gt; (CEGUI::WindowManager::getSingletonPtr()-&gt;createWindow ("TaharezLook/PopupMenu" , Name));

    Parent-&gt;addChildWindow (PopMenu.at (Popup_Menu_ID)); 
    Popup_Menu_ID++ ;
}
</code></pre>

<p>we change the following line </p>

<pre><code>MenuItem *const Parent
</code></pre>

<p>the new line is mean that we can change value but no change the address so </p>

<pre><code> obj *const a = obj const *b 
</code></pre>

<p>is wrong !!! </p>
