C++ 需要C+的帮助+;/*=NULL处的代码解析*/

C++ 需要C+的帮助+;/*=NULL处的代码解析*/,c++,comments,C++,Comments,你能告诉我下面的/*=NULL*/的意思吗 CMyCla::CMyCla(CWnd* pParent /*=NULL*/) : CDialog(CCycleTimes::IDD, pParent) { // Some code here } 顺便说一句,我复制了同一行 已成功注释为下面的syte // CMyCla::CMyCla(CWnd* pParent /*=NULL*/) // : CDialog(CCycleTimes::IDD, pParent) 否则,注释失败

你能告诉我下面的
/*=NULL*/
的意思吗

CMyCla::CMyCla(CWnd* pParent /*=NULL*/)
    : CDialog(CCycleTimes::IDD, pParent)
{
    // Some code here
}
顺便说一句,我复制了同一行

已成功注释为下面的syte

// CMyCla::CMyCla(CWnd* pParent /*=NULL*/)
//  : CDialog(CCycleTimes::IDD, pParent)
否则,注释失败,样式如下

/*
    CMyCla::CMyCla(CWnd* pParent /*=NULL*/)
        : CDialog(CCycleTimes::IDD, pParent)
*/

注释操作为什么失败?

很可能在类声明中指定了该参数的默认值:

class CMyCla {
public:
    CMyCla(CWnd* pParent =NULL);
};
现在在CMyCla::CMyCla()的实现中,不允许重新定义参数的默认值,但是作者可能想提醒存在默认值,所以他将其注释掉

当您执行以下操作时:

/* 
    CMyCla::CMyCla(CWnd* pParent /*=NULL*/) 
        : CDialog(CCycleTimes::IDD, pParent) 
*/ 
第一条结束注释(*/)结束已注释部分,因此之后的所有内容现在都未注释:

/*<CommentStart>
    CMyCla::CMyCla(CWnd* pParent /*=NULL*/<CommentEnd>)<-this is not commented
        : CDialog(CCycleTimes::IDD, pParent) <-neither is this
*/<-this closing comment can produce a compiler error
/*

CMyCla::CMyCla(CWnd*pParent/*=NULL*/)注释在上一个案例中不起作用,因为
/**/
样式注释不嵌套。您不能将一条注释放入另一条注释中。

注释操作失败,因为编译器从第一条
/*
读取到下一条
*/
,忽略其间的所有内容,包括其他
/*
。此外,如果sharptooth是正确的,则不允许在此处重新定义该值,因此它可能是指针的默认值