About dynamic cast and address of base and derived objects
<p>I was reading through some of effective c++ and I realized I may be incorrect in my thinking along the way.</p>

<pre><code>class A
{
    public:
    void laka()
    {
        const void * raw = dynamic_cast&lt;const void*&gt;(this);
        cout &lt;&lt; raw &lt;&lt; endl;
    }

    virtual ~A() = 0; 
};

A::~A() {}
class B : public A
{
public:
    void ditka() {}
};

int _tmain(int argc, _TCHAR* argv[])
{
    B b; 
    cout &lt;&lt; &amp;b &lt;&lt; endl;
    b.laka();

    return 0;
}
</code></pre>

<p>The book stated that by using dynamic_cast with *void, I would get the starting address of an object however, all of the addresses output of the same.</p>

<ol>
<li><p>When I just output the address of the plain old &amp;b above, is the address displayed the starting address of the derived object or the base object within b?</p></li>
<li><p>If I was incorrect or wrong about #1, how would I get the starting addresses of each subobject within b? Do I just manually have to offset and how does dynamic_cast work with this or just clarify what the author meant?</p></li>
</ol>
