关于自动判断循环参数的for循环,及MFC程序的文档类指针.

1,下面代码中指向文档类的指针pDoc已经解除指针了,为什么pElement却还是指针?
2,GetEnclosingRect()是文档类里的一个成员m__Element的基类的函数,为什么可以直接用文档类访问越级访问?
for (const auto & pElement : * pDoc)
{
if(pDc->RectVisible(pElement->GetEnclosingRect()))
pElement->Draw(pDC);
}

https://blog.csdn.net/yuvmen/article/details/5877232