为什么我的类的构造函数参数类型被改变了?
以下是定义:
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




