CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

为什么我的类的构造函数参数类型被改变了?

楼主blackmurder(blackmurder)2006-11-03 22:35:14 在 VC/MFC / 基础类 提问

以下是定义:  
  class   TClass  
  {  
  public:  
  explicit   TClass(CWnd*   pCWnd);//注意:我特别使用了explicit关键字,但还是不行  
  }  
  以下是调用:  
  void   CMainFrame::OnFileNew()    
  {  
  TClass*   TInstance   =   new   TClass(theApp.GetMainWnd());  
  }  
  以下是出错信息:  
  F:\Microsoft   Visual   Studio\MyProjects\二叉树2\MainFrm.cpp(74)   :   error   C2664:   '__thiscall   TClass::TClass(const   class   TClass   &)'   :   cannot   convert   parameter   1   from   'class   CWnd   *'   to   'const   class   TClass   &'  
                  Reason:   cannot   convert   from   'class   CWnd   *'   to   'const   class   TClass'  
                  No   constructor   could   take   the   source   type,   or   constructor   overload   resolution   was   ambiguous  
   
  我的意思是用一个CWnd型指针做参数,但根据出错信息判断,我的参数类型被改为了TClass型.我特别使用了explicit关键字,但仍然有问题.  
  急求高人解答  
  问题点数:20、回复次数:3Top

1 楼vcmute(BCare4 H1Rest Good9!)回复于 2006-11-03 23:08:18 得分 0

没问题啊  
   
  class   TClass  
  {  
  public:  
  explicit   TClass(CWnd*   pCWnd){};//注意:我特别使用了explicit关键字,但还是不行  
  };  
   
  theApp.GetMainWnd()的类型是什么?Top

2 楼blackmurder(blackmurder)回复于 2006-11-03 23:14:56 得分 0

当然是CWnd*类型了Top

3 楼BoXoft()回复于 2006-11-04 07:31:41 得分 20

试试:  
  #include   "Mainfrm.h"  
  class   TClass  
  {  
  public:  
  TClass(CMainFrame*   pMainFrame);  
  }  
   
  void   CMainFrame::OnFileNew()    
  {  
  TClass*   TInstance   =   new   TClass(this);  
  }  
  Top

相关问题

关键词

得分解答快速导航

  • 帖主:blackmurder
  • BoXoft

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo