塔克茜丝 2018-11-07 07:20 采纳率: 0%
浏览 990

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对象的私有变量)

谁能解答下啊_

  • 写回答

2条回答

  • threenewbee 2018-11-07 11:41
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 kali环境运行volatility分析android内存文件,缺profile
  • ¥15 写uniapp时遇到的问题
  • ¥15 vs 2008 安装遇到问题
  • ¥15 matlab有限元法求解梁带有若干弹簧质量系统的固有频率
  • ¥15 找一个网络防御专家,外包的
  • ¥100 能不能让两张不同的图片md5值一样,(有尝)
  • ¥15 informer代码训练自己的数据集,改参数怎么改
  • ¥15 请看一下,学校实验要求,我需要具体代码
  • ¥50 pc微信3.6.0.18不能登陆 有偿解决问题
  • ¥20 MATLAB绘制两隐函数曲面的交线