2009-12-14 34 views
0

你能告訴我下面的/*=NULL*/的含義嗎?需要幫助C++代碼解析在/ * = 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) 
*/ 

爲什麼評論操作失敗?

回答

10

最有可能在類聲明中指定該參數的默認值:

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 
5

的評論沒有在你最後的情況下工作,因爲/**/風格評論不嵌套。你不能把一個/**/評論放在另一個裏面。

1

註釋操作失敗,因爲編譯器從第一個/*讀取到下一個*/忽略包括其他/*之間的所有內容。此外,什麼銳利是正確的,你不會被允許重定義那裏的值,所以它可能是指針的默認值。