出现no appropriate default constructor available错误,不知是什么原因,各位大哥来看看啊!
我自己从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"
- 错误
- ','错误
- 错误???




