Visual C++构造函数初始化一个指针类问题

在看零基础学VisualC++那本书,第83页讲:在CTest6_1Dlg中添加一个变量:dlg1*pdlg;并且在CTest6_1Dlg的构造函数中初始化为NULL。添... 在看零基础学Visual C++那本书,第83页讲:在CTest6_1Dlg中添加一个变量:dlg1*pdlg;并且在CTest6_1Dlg的构造函数中初始化为NULL。添加变量没问题,但初始化不会弄,源程序如下:
class dlg1;
class CTest6_1Dlg : public CDialog
{
// Construction
public:
dlg1 *pdlg; //添加对象,但初始化怎么写,下面这个是构造函数吧?
CTest6_1Dlg(CWnd* pParent = NULL) ; // standard constructor

// Dialog Data
//{{AFX_DATA(CTest6_1Dlg)
enum { IDD = IDD_TEST6_1_DIALOG };
// NOTE: the ClassWizard will add data members here
//}}AFX_DATA

// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CTest6_1Dlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL

// Implementation
protected:
HICON m_hIcon;

// Generated message map functions
//{{AFX_MSG(CTest6_1Dlg)
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
virtual void OnOK();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
程序:http://pan.baidu.com/s/1i39o6ZN
展开
 我来答
358097271
推荐于2016-03-02 · TA获得超过165个赞
知道小有建树答主
回答量:188
采纳率:0%
帮助的人:168万
展开全部
首先你要实现一下构造函数CTest6_1Dlg(CWnd* pParent = NULL)
初始化dlg1 *pdlg;可以在构造函数的初始化列表里面初始化 或者在函数体里面初始化也行
比如:
CTest6_1Dlg::CTest6_1Dlg(CWnd* pParent = NULL):pdlg(NULL)
//构造函数冒号后面跟着的就是初始化列表
{//这里是函数体
}
或者在函数体里面初始化:
CTest6_1Dlg::CTest6_1Dlg(CWnd* pParent = NULL)
{
pdlg = NULL;
}
更多追问追答
追问

我试了第三种,但是编译报错。

我把程序给你看看吧,是个例程,很简单的。

追答
你第二张图 CTest6_1Dlg::CTest6_1Dlg(CWnd* pParent = NULL):pdlg(NULL)这个地方不能这样写 因为你在类外(在第一张图报错的地方)已经实现构造函数 ,两个只能留一个;假如你保留类外实现,那你第二张图 就应该是写成CTest6_1Dlg(CWnd* pParent = NULL); ;第二张图就写成
CTest6_1Dlg::CTest6_1Dlg(CWnd* pParent ):CDialg(CTest6_1Dlg::IDD,pParent),pdlg(NULL)
{
...........(此处内容省略)
}
香帅之枫
2014-09-28 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:88
采纳率:0%
帮助的人:68.8万
展开全部
直接赋值 为null就可以了呀,不明白你想问什么不会弄?
追问

这样写报了9个错误

追答
在对象里面声明变量,赋值是没有用的,你需要在构造函数里面给他赋初值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式