
MFC对话框什么找不到析构函数?自己定义又提示错误“已定义”。。。。急
6个回答
展开全部
因为由于不在头文件中声明析构函数,编译器会自动生成一个析构函数;我觉得你的问题是因为你没有在头文件中声明析构函数,而直接在cpp文件定义了析构函数。由于头文件中没有声明,编译器已经帮你定义了一个了,你再次定义时,就会出错,显示函数体已经存在了。
展开全部
你在dialog的.h文件 的构造函数声明后加上 析构函数声明 ,
在相应的dialog的cpp的文件中加入 析构函数的定义就可以了
eg :public:~ CWorkerDlg(); //.h文件中
CCWorkerDlg::~CWorkerDlg() //.cpp文件中
{
//......
}
在相应的dialog的cpp的文件中加入 析构函数的定义就可以了
eg :public:~ CWorkerDlg(); //.h文件中
CCWorkerDlg::~CWorkerDlg() //.cpp文件中
{
//......
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CWorkerDlg::~CWorkerDlg你用这个在cpp文件里找一下看看有没有重复的。
看看头文件里是不是这么写的
~CWorke(){}
看看头文件里是不是这么写的
~CWorke(){}
追问
绝对木有
追答
头文件的东西贴一下吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的对话框类继承于CDialogEx类,CDialogEx类继承于CDialog类,CDialog类中有:
virtual ~CDialog();
所以你在对话框类头文件里声明析构函数,再在源文件里写实现就好,如同另外的答案所说:网页链接
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
"MFC对话框什么找不到析构函数"这句话对应的错误信息原文是什么?不明白你意思
追问
error C2084: function '__thiscall CWorkerDlg::~CWorkerDlg(void)' already has a body
追答
那是说已经重复定义了一个函数,你说“找不到”是在哪看到得?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询