在mfc中如何定义一个指针类型的变量?

2025-05-19 07:34:19
推荐回答(4个)
回答1:

对编译器来说,两种方法都是正确的,但是按你的说法 变量类型应该是 FILE* ;变量名是fliein。fliein是一个FLIE指针类型的变量

回答2:

1.从视图类获得文档类的指针
在视图类中需要引用文档类的地方之前,使用以下语句:CTextDoc *pDoc=(CTestDoc*)GetDocument();以后便可使用pDoc指针访问文档类。
可以在Test.cpp中的Initstance()方法中看到以下语句:
CSingleDocTemplate *pDocTemplate;
pDocTemplate=new CSingleDocTemplate(IDR_MAINFRAME,RUNTIME_CLASS(CTestDoc),RUNTIME_CLASS(CMainFrame),
RUNTIME_CLASS(CTestView));
AddDocTemplate(pDocTemplate);
以及TestView.h中的线上定义:
inline CTestDoc* CTestView::GetDocument()
{ return (CTestDoc*)m_pDocument;}

2.从文档类取得视图类的指针

CDocument类提供了两个函数用于视图类的定位:GetFirstViewPosition()和GetNextView(),具体语法如下:
virtual POSITION GetFirstViewPosition() const;
virtual CView* GetNextView(POSITION& rPosition) const;
注意:GetNextView()括号中的参数用的是引用方式,因此执行后值可能改变。

需将这两个函数调用一次即可得到CTestView的指针如下(需定义一个POSITION结构变量来辅助操
作):
CTestView* pTestView;
POSITION pos=GetFirstViewPosition();
pTestView=GetNextView(pos);
这样,便可到了CTestView类的指针pTestView.执行完成几句后,变量pos=NULL,因为没有下一个视图类,自然也没有下一个视图类的POSITION.
判断一个类指针指向的是否某个类的实例时,可用IsKindOf()成员函数时行检查,如:
pView->IsKindOf(RUNTIME_CLASS(CTestView));
即可检查pView所指是否是CTestView类。

回答3:

是的。指针类型肯定是不一样的。比如说颜色框和文件框指针肯定不一样。
另外自定义的各类对话框指针也不相同。
不需要重新重新存储。用RUN_CLASS(类名)可以动态得到对象的指针.

回答4:

2总写法都可以,但第二种写法能定义多个指针 如
FLIE *fp1,*fp2;