如何在基于对话框中添加构造函数和析构函数 我想在基于对话框中添加构造函数和析构函数 如何添加啊 难道只是通过添加成员函数那种方法 classname() //构造函数 ~classname();//析构函数 不过这两个函数没有类型啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不过这两个函数没有类型啊 ??没有类型什么意思?这两个是默认构造函数和默认析构函数就是像上面那样子添加就可以了,构造函数和析构函数是没有返回值的你可以重载其他的构造函数,如:classname(void *data){...} 不行?代码贴出来!你是不是classname(CWnd* pParent = NULL);classname();如果你有这样两个构造函数,那你就得去了解一下什么叫函数重载,他们的原则是什么? classname(CWnd* pParent = NULL); // 标准构造函数virtual ~classname(); 0\sampledlg.h(58) : warning C4520: 'CSampleDlg' : multiple default constructors specifiedDlg.cpp(837) : error C2668: 'CSampleDlg::CSampleDlg' : ambiguous call to overloaded function报错后指明的是这个位置void CMyDlg::OnDisplay() { // TODO: Add your control notification handler code here CSampleDlg * pDlg = new CSampleDlg;if (pDlg!=NULL){ pDlg->Create(IDD_DIALOG1,this); pDlg->ShowWindow(SW_SHOW);}else AfxMessageBox("创建失败");} 你是classname(CWnd* pParent = NULL);classname();这样重载了构造函数了吧???????看看我发的上个回复先弄懂重载函数的原则啊把你的头文件贴出来 我这个类是弹出对话框的类#if !defined(AFX_SAMPLEDLG_H__DF38A783_C8CB_4180_828C_8C5B0DF76920__INCLUDED_)#define AFX_SAMPLEDLG_H__DF38A783_C8CB_4180_828C_8C5B0DF76920__INCLUDED_#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000// SampleDlg.h : header file//#include <stdio.h>#include <math.h>#define COLUMN_SIZE 60#define COLUMN_SCALE 15#define MOVE_SCOPE 10/////////////////////////////////////////////////////////////////////////////// CSampleDlg dialogclass CSampleDlg : public CDialog{// Constructionpublic: float *pDataBackZ; float *pDataBackY; float *pDataBackX; CSampleDlg(CWnd* pParent = NULL); // standard constructor// Dialog Data //{{AFX_DATA(CSampleDlg) enum { IDD = IDD_DIALOG1 }; // NOTE: the ClassWizard will add data members here //}}AFX_DATA// Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CSampleDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL// Implementationprotected: // Generated message map functions //{{AFX_MSG(CSampleDlg) virtual void OnOK(); afx_msg void OnPaint(); afx_msg void OnTimer(UINT nIDEvent); afx_msg void OnCancel(); //}}AFX_MSG DECLARE_MESSAGE_MAP()private: void DrawDataZ(CDC *pDC); void DrawDataY(CDC *pDC); void DrawDataX(CDC *pDC); int mm_xPostion[COLUMN_SIZE]; void MoveCoordinate(void); void DrawGrid(CDC *pDC);};//{{AFX_INSERT_LOCATION}}// Microsoft Visual C++ will insert additional declarations immediately before the previous line.#endif // !defined(AFX_SAMPLEDLG_H__DF38A783_C8CB_4180_828C_8C5B0DF76920__INCLUDED_) class CSampleDlg : public CDialog{// Constructionpublic: CSampleDlg(); float *pDataBackZ; float *pDataBackY; float *pDataBackX; CSampleDlg(CWnd* pParent = NULL); // standard constructor// Dialog Data //{{AFX_DATA(CSampleDlg) enum { IDD = IDD_DIALOG1 }; // NOTE: the ClassWizard will add data members here //}}AFX_DATA// Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CSampleDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL// Implementationprotected: // Generated message map functions //{{AFX_MSG(CSampleDlg) virtual void OnOK(); afx_msg void OnPaint(); afx_msg void OnTimer(UINT nIDEvent); afx_msg void OnCancel(); //}}AFX_MSG DECLARE_MESSAGE_MAP()private: void DrawDataZ(CDC *pDC); void DrawDataY(CDC *pDC); void DrawDataX(CDC *pDC); int mm_xPostion[COLUMN_SIZE]; void MoveCoordinate(void); void DrawGrid(CDC *pDC);};这是添加后的程序 杯具啊我上面的帖子白回了看看6楼 10楼 11楼 我都说了什么了!classname(CWnd* pParent = NULL);classname();当你给他一个参数时候,系统知道要调用第一个。当你不给他参数的时候,你要让它调用哪一个??? Csocket 重链接的问题? 只允许一个实例运行的问题! 如何在MFC界面中一个能调用Outlook读取邮件.eml文件的按钮 如何过滤一个应用程序Socket发送的网络数据.. 自己封装IP头的问题,急急急急急呀!!!!!! 需要编辑 .pdf 格式文件的软件 kxyes请进来接分 MFC中,知道time1时间和秒数,如何求出time2? 只要大家推荐,都有分的。。。 超级菜的问题有30分呀!!!!!我写了个基于对话框的程序对一个位图添加了一个BN_CLICKED消息,可没有响应! WINDOWS怎么区分用户线程和内核线程 对话框 控件 双缓存绘图依然闪烁
不过这两个函数没有类型啊 ??
没有类型什么意思?这两个是默认构造函数和默认析构函数就是像上面那样子添加就可以了,构造函数和析构函数是没有返回值的你可以重载其他的构造函数,如:
classname(void *data){...}
classname(CWnd* pParent = NULL);
classname();
如果你有这样两个构造函数,那你就得去了解一下什么叫函数重载,他们的原则是什么?
virtual ~classname();
{
// TODO: Add your control notification handler code here
CSampleDlg * pDlg = new CSampleDlg;
if (pDlg!=NULL)
{
pDlg->Create(IDD_DIALOG1,this);
pDlg->ShowWindow(SW_SHOW);
}
else
AfxMessageBox("创建失败");
}
classname(CWnd* pParent = NULL);
classname();这样重载了构造函数了吧???????
看看我发的上个回复
先弄懂重载函数的原则啊把你的头文件贴出来
#define AFX_SAMPLEDLG_H__DF38A783_C8CB_4180_828C_8C5B0DF76920__INCLUDED_#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// SampleDlg.h : header file
//
#include <stdio.h>
#include <math.h>#define COLUMN_SIZE 60
#define COLUMN_SCALE 15
#define MOVE_SCOPE 10
/////////////////////////////////////////////////////////////////////////////
// CSampleDlg dialogclass CSampleDlg : public CDialog
{
// Construction
public:
float *pDataBackZ;
float *pDataBackY;
float *pDataBackX;
CSampleDlg(CWnd* pParent = NULL); // standard constructor// Dialog Data
//{{AFX_DATA(CSampleDlg)
enum { IDD = IDD_DIALOG1 };
// NOTE: the ClassWizard will add data members here
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CSampleDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL// Implementation
protected: // Generated message map functions
//{{AFX_MSG(CSampleDlg)
virtual void OnOK();
afx_msg void OnPaint();
afx_msg void OnTimer(UINT nIDEvent);
afx_msg void OnCancel();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
private:
void DrawDataZ(CDC *pDC);
void DrawDataY(CDC *pDC);
void DrawDataX(CDC *pDC);
int mm_xPostion[COLUMN_SIZE];
void MoveCoordinate(void);
void DrawGrid(CDC *pDC);
};//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.#endif // !defined(AFX_SAMPLEDLG_H__DF38A783_C8CB_4180_828C_8C5B0DF76920__INCLUDED_)
{
// Construction
public:
CSampleDlg();
float *pDataBackZ;
float *pDataBackY;
float *pDataBackX;
CSampleDlg(CWnd* pParent = NULL); // standard constructor// Dialog Data
//{{AFX_DATA(CSampleDlg)
enum { IDD = IDD_DIALOG1 };
// NOTE: the ClassWizard will add data members here
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CSampleDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL// Implementation
protected: // Generated message map functions
//{{AFX_MSG(CSampleDlg)
virtual void OnOK();
afx_msg void OnPaint();
afx_msg void OnTimer(UINT nIDEvent);
afx_msg void OnCancel();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
private:
void DrawDataZ(CDC *pDC);
void DrawDataY(CDC *pDC);
void DrawDataX(CDC *pDC);
int mm_xPostion[COLUMN_SIZE];
void MoveCoordinate(void);
void DrawGrid(CDC *pDC);
};
这是添加后的程序
我上面的帖子白回了
看看6楼 10楼 11楼 我都说了什么了!
classname(CWnd* pParent = NULL);
classname();当你给他一个参数时候,系统知道要调用第一个。
当你不给他参数的时候,你要让它调用哪一个???