CView:GetDocument()的实现下哪个文件里面
CView::GetDocument()的实现在哪个文件里面

想对这个方法有更深入的了解。。
------解决方案--------------------
VC6 的在 afxwin2.inl 文件中。
------解决方案--------------------
很多核心的函数是不公开的。但是对于这个方法你需要了解什么呢?既然CView有如下成员,这个函数肯定是直接返回这个了
protected:
CDocument* m_pDocument;
------解决方案--------------------
这个不用深入了解的,有两个版本的,debug版的就在H文件中,一般是这样的:
#ifndef _DEBUG // ddView.cpp 中的调试版本
inline CddDoc* CddView::GetDocument() const
{ return reinterpret_cast<CddDoc*>(m_pDocument); }
#endif
realease版的在CPP文件中:
CddDoc* CddView::GetDocument() const // 非调试版本是内联的
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CddDoc)));
return (CddDoc*)m_pDocument;
}
------解决方案--------------------
那是你自己视图类的,楼主问的是CView类。这个函数不是纯虚函数,因此CView自己也有这个函数的实现的
------解决方案--------------------
这个同样被隐藏起来了,你在代码里是找不到的,他实际应该是在CDocTemplate之类的类中创建的
想对这个方法有更深入的了解。。
------解决方案--------------------
VC6 的在 afxwin2.inl 文件中。
------解决方案--------------------
很多核心的函数是不公开的。但是对于这个方法你需要了解什么呢?既然CView有如下成员,这个函数肯定是直接返回这个了
protected:
CDocument* m_pDocument;
------解决方案--------------------
这个不用深入了解的,有两个版本的,debug版的就在H文件中,一般是这样的:
#ifndef _DEBUG // ddView.cpp 中的调试版本
inline CddDoc* CddView::GetDocument() const
{ return reinterpret_cast<CddDoc*>(m_pDocument); }
#endif
realease版的在CPP文件中:
CddDoc* CddView::GetDocument() const // 非调试版本是内联的
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CddDoc)));
return (CddDoc*)m_pDocument;
}
------解决方案--------------------
那是你自己视图类的,楼主问的是CView类。这个函数不是纯虚函数,因此CView自己也有这个函数的实现的
------解决方案--------------------
这个同样被隐藏起来了,你在代码里是找不到的,他实际应该是在CDocTemplate之类的类中创建的