在mfc中如何定义一个指针类型的变量?
比如我想添加一个FILE*filein的变量。在添加成员变量的时候,1,变量类型:FILE*;变量名称:fliein。2,变量类型:FLIE;变量名称:*fliein。这...
比如我想添加一个FILE *filein的变量。在添加成员变量的时候,
1,变量类型:FILE *;变量名称:fliein。
2,变量类型:FLIE; 变量名称:*fliein。
这两种定义方式那种是正确的?
我试了一下,貌似两种方式都可以定义啊? 展开
1,变量类型:FILE *;变量名称:fliein。
2,变量类型:FLIE; 变量名称:*fliein。
这两种定义方式那种是正确的?
我试了一下,貌似两种方式都可以定义啊? 展开
5个回答
2015-08-28 · 知道合伙人互联网行家
关注
展开全部
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类。
在视图类中需要引用文档类的地方之前,使用以下语句: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类。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是的。指针类型肯定是不一样的。比如说颜色框和文件框指针肯定不一样。
另外自定义的各类对话框指针也不相同。
不需要重新重新存储。用RUN_CLASS(类名)可以动态得到对象的指针.
另外自定义的各类对话框指针也不相同。
不需要重新重新存储。用RUN_CLASS(类名)可以动态得到对象的指针.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
2总写法都可以,但第二种写法能定义多个指针 如
FLIE *fp1,*fp2;
FLIE *fp1,*fp2;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对于c++编译器来说,没区别.
到个人,就是习惯问题.怎么看得爽,写什么.
到个人,就是习惯问题.怎么看得爽,写什么.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询