CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

出现no appropriate default constructor available错误,不知是什么原因,各位大哥来看看啊!

楼主stone4774(stone4774)2006-03-10 11:33:43 在 VC/MFC / 基础类 提问

我自己从CFormView类派生一个新类,以下是它的代码:  
  class   CMyFormView   :   public   CFormView  
  {  
          DECLARE_DYNAMIC(CMyFormView)  
  protected:              
  CMyFormView(LPCTSTR   lpszTemplateName){};/*报错no   appropriate   default   constructor   available*/  
  CMyFormView(UINT   nIDTemplate){};   /*报错no   appropriate   default   constructor   available*/  
  virtual   ~CMyFormView()   {};  
  public:  
  void   SetScaleToFitSize(SIZE   sizeTotal);  
  void   SetScrollSizes(int   nMapMode,   SIZE   sizeTotal,  
  SIZE&   sizePage,  
  SIZE&   sizeLine   );  
  };  
  不晓得哪位大哥能帮我解决一下,不胜感激,解决马上给分! 问题点数:50、回复次数:21Top

1 楼striking(庸人自扰)回复于 2006-03-10 11:37:59 得分 0

protected:              
  CMyFormView(LPCTSTR   lpszTemplateName){};/*报错no   appropriate   default    
   
  protected   -> public   :   试试Top

2 楼ydfivy(我就是一送外卖的)回复于 2006-03-10 11:38:49 得分 0

class   CMyFormView   :   public   CFormView  
  {  
          DECLARE_DYNAMIC(CMyFormView)  
  protected:    
                    CMyFormView(){};/*****           加一个这个试试.   *****/  
  CMyFormView(LPCTSTR   lpszTemplateName){};/*报错no   appropriate   default   constructor   available*/  
  CMyFormView(UINT   nIDTemplate){};   /*报错no   appropriate   default   constructor   available*/  
  virtual   ~CMyFormView()   {};  
  public:  
  void   SetScaleToFitSize(SIZE   sizeTotal);  
  void   SetScrollSizes(int   nMapMode,   SIZE   sizeTotal,  
  SIZE&   sizePage,  
  SIZE&   sizeLine   );  
  };  
  Top

3 楼winehero(God helps those who help themselves.)回复于 2006-03-10 11:41:57 得分 0

参数是指针,没有赋值需要指明为NULLTop

4 楼stone4774(stone4774)回复于 2006-03-10 11:46:56 得分 0

一楼二楼的建议我之前就试过,还是一样的问题!Top

5 楼ydfivy(我就是一送外卖的)回复于 2006-03-10 11:51:53 得分 0

CMyFormView():CFormView(){};/在派生类的构造函数后加一个基类的构造函数试试.Top

6 楼winehero(God helps those who help themselves.)回复于 2006-03-10 11:52:34 得分 0

如:CMyFormView(LPCTSTR   lpszTemplateName=NULL){};Top

7 楼striking(庸人自扰)回复于 2006-03-10 11:54:34 得分 0

构造函数不要protected.   改为publicTop

8 楼ydfivy(我就是一送外卖的)回复于 2006-03-10 11:55:08 得分 0

CMyFormView();                       //   protected   constructor   used   by   dynamic   creation  
  DECLARE_DYNCREATE(CMyFormView)  
  把DEFAULT   CONSTRUCTOR放在动态创建的宏前面.Top

9 楼stone4774(stone4774)回复于 2006-03-10 11:59:06 得分 0

不好意思,各位的都不行,错误更多了!  
  winehero(God   helps   those   who   help   themselves.)   的好象和no   appropriate   default   constructor   available错误没有关系吧,改了一样是那么多错误!  
  Top

10 楼stone4774(stone4774)回复于 2006-03-10 12:00:42 得分 0

to:striking(硬撑者)  
  我已经改成了public:但是,还是有这个问题出现!Top

11 楼ydfivy(我就是一送外卖的)回复于 2006-03-10 12:02:49 得分 0

CMyFormView();                       //   protected   constructor   used   by   dynamic   creation  
  DECLARE_DYNCREATE(CMyFormView)  
  把DEFAULT   CONSTRUCTOR放在动态创建的宏前面.  
  这样也不行吗?Top

12 楼striking(庸人自扰)回复于 2006-03-10 12:07:03 得分 0

每个构造函数后面加  
    :CFormView(CMyFormView::IDD)Top

13 楼yanhailiangyhl(编程浪子)回复于 2006-03-10 12:27:06 得分 0

把错误的号码发一下  
  Top

14 楼stone4774(stone4774)回复于 2006-03-10 12:39:01 得分 0

不好意思,刚刚吃饭去了  
  error   C2512:   'CFormView'   :   no   appropriate   default   constructor   availableTop

15 楼Mackz(在相互)回复于 2006-03-10 12:41:18 得分 0

编译器错误   C2512  
   
  “identifier”:   没有合适的默认构造函数可用  
  对指定的类、结构或联合没有可用的默认构造函数。如果没有提供用户定义的构造函数,则编译器提供默认构造函数。如果提供采用非   void   参数的构造函数,则必须也提供默认构造函数。默认构造函数可以是具有所有参数的默认值的构造函数。  
  下面的示例生成   C2512:  
  //   C2512.cpp  
  class   B   {  
  public:  
        B   (char   *);  
        /*   add   the   folling   constructor  
        B()   {  
        };  
        */  
  };  
   
  int   main()   {  
        B   b;         //   C2512  
  }  
  Top

16 楼stone4774(stone4774)回复于 2006-03-10 12:43:18 得分 0

TO:ydfivy(我就是一送外卖的)  
  还是不行,你那里调试可以吗??Top

17 楼stone4774(stone4774)回复于 2006-03-10 12:53:42 得分 0

TO:striking(硬撑者)  
  加了   :CFormView(CMyFormView::IDD)之后,报错是:error   C2039:   'IDD'   :   is   not   a   member   of   'CMyFormView'Top

18 楼striking(庸人自扰)回复于 2006-03-10 13:16:09 得分 0

stone4774(stone4774)    
   
  那你要看看基类CFormView是需要什么参数.   如果没有参数,   就放空嘛Top

19 楼stone4774(stone4774)回复于 2006-03-10 13:26:54 得分 0

TO:   striking(硬撑者)  
  我的目的是我的CMyFormView类取代CFormView类,来创建窗体,也就是说现在没有IDD之类的参数,但是分析CFormView的构造函数发现,它必须要有一个参数!不知怎么弄??Top

20 楼striking(庸人自扰)回复于 2006-03-10 13:30:45 得分 50

看了半天.  
  class   CMyFormView   :   public   CFormView  
  {  
          DECLARE_DYNAMIC(CMyFormView)  
  protected:              
  CMyFormView(LPCTSTR   lpszTemplateName):CFormView(lpszTemplateName){};/*看看我给你改的*/  
  CMyFormView(UINT   nIDTemplate)):CFormView(nIDTemplate){};   /*看看我给你改的*/  
  virtual   ~CMyFormView()   {};  
  public:  
  void   SetScaleToFitSize(SIZE   sizeTotal);  
  void   SetScrollSizes(int   nMapMode,   SIZE   sizeTotal,  
  SIZE&   sizePage,  
  SIZE&   sizeLine   );  
  };  
  Top

21 楼stone4774(stone4774)回复于 2006-03-10 14:07:31 得分 0

没有错误了,谢谢!马上结帖!,能告诉我你QQ吗?呵呵,我的QQ是32500044,我今年7月才毕业,现在在深圳一公司搞VC,但是什么也不会,所以想找高手带一下!Top

相关问题

  • default的错误?
  • error C2512: 'CMyDialog' : no appropriate default constructor available
  • 错误提示:Wrong number of arguments in constructor.
  • 调试时出现:'CFootBall' :no appropriate default constructor available???
  • no appropriate default constructor available是怎么回事?
  • TreeNode ncNode = ocNode.Clone() as TreeNode;出现的错误是:No paremeterless constructor defined for this object;是什么问题啊
  • ant编译脚本的错误"Default target 'dist' does not exists in project"
  • 错误
  • ','错误
  • 错误???

关键词

  • 函数
  • cmyformview
  • cformview
  • 构造函数
  • lpsztemplatename
  • c2512
  • sizetotal
  • 参数
  • constructor available
  • 看看

得分解答快速导航

  • 帖主:stone4774
  • striking

相关链接

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

广告也精彩

反馈

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