CMyView类GetDocument()函数获得的CMyDoc的指针疑问

MFC中,CMyView的GetDocument() 是 CMyDoc* GetDocument() const;
调用后 return (CMyDoc*)m_pDocument;
m_pDocument是属于CView的成员变量,类型是CDocument*,
CMyDOC继承于CDoc;
等于说是把CDoc的父类指针强制转换为子类CMyDoc的指针了,这个理解对么?

按照这个转换方式,这个指针只能访问子类的虚函数和父类的实函数,子类自己的函数是不能访问的(自己有做程序验证),这就和MFC的程序表现不符了,我们修改的都是CMyDoc里面的内容,通过这个指针访问不了?最典型的就是VC++2013里面的代码
if (ElementType::CURVE == GetDocument()->GetElementType()) // A curve?
//GetDocument()获得了(CSketcherDoc*)m_pDocument,指向CSketcherDoc对象,
//GetDocument 是view对象获得doc对象指针,用来调用doc对象的方法
//再->GetElementType();返回m_Element(doc对象的私有变量)

谁能解答下啊_

mfc

1个回答

qq_38833921
qq_38833921 谢谢答复:从你的链接看,是用dynamic_cast,但是代码里面没看到有这个运算符?请问在哪里?
10 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!