关于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类的成员函数,在非调试版本是内联的。

转载于:https://www.cnblogs.com/carbs/archive/2012/04/29/2476034.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值