zoukankan      html  css  js  c++  java
  • 关于CHelloDoc* GetDocument() 的一些问题 ?

    class CHelloView : public CView
    {
    protected: // create from serialization only
     CHelloView();
     DECLARE_DYNCREATE(CHelloView)
    
    // Attributes
    public:
     CHelloDoc* GetDocument();
    (略)
    }
    问题1:在这里面的 GetDocument()是不是作为一个对象指针?如果是对象指针的话,也就是说除了可以用变量作为指针名,还可以用函数体来作为指针名,我不知道这样理解对不对?
    问题2:GetDocument()是属于CHelloDoc类的成员(或者对象)还是属于CHelloView类的成员(或者对象)?

    问题补充:

    那是不是说类似于 “类名*函数名” 这类形式的语句就是定义一个类指针。而‘类名*变量名 “这类形式的语句就是定义一个对象指针?不知道我的理解对不对
     
     
    在VS中,用MFC应用程序向导生成SDI或MDI程序,会在视图类中加入这个函数。
    类CHelloView中函数声明为:
    CHelloDoc* GetDocument() const;   // 这是个返回值为CHelloDoc*的函数,返回与本视图连接的文档对象指针
    
    一般,在CHelloView.h文件中还有如下代码。表示在非调试版本(如Release版本)中,本函数是内联的。这样不需函数调用,执行效率非常高。
    #ifndef _DEBUG  // HelloView.cpp 的非调试版本是内联的
    inline CHelloDoc* CHelloView::GetDocument() const
    { return reinterpret_cast<CHelloDoc*>(m_pDocument); }
    #endif
    
    
    可以看出你提问的答案:
    1.  GetDocument()是一个函数,返回值是CHelloDoc*类型;
    2.  GetDocument()是CHelloView类的成员函数,在非调试版本是内联的。
  • 相关阅读:
    python
    爬虫
    python 自动登录
    day22 cookie session 中间件 Form
    day10进程、异步IO、
    python第五课
    day21
    day20 Django
    day 19
    day18
  • 原文地址:https://www.cnblogs.com/carbs/p/2476034.html
Copyright © 2011-2022 走看看