2009-12-14 8 views
0

에서 C++ 코드 해독에 대한 도움이 필요하십니까 아래 /*=NULL*/의 의미를 말해 주시겠습니까?/* = NULL */

CMyCla::CMyCla(CWnd* pParent /*=NULL*/) 
    : CDialog(CCycleTimes::IDD, pParent) 
{ 
    // Some code here 
} 

그리고 btw, 나는 같은 줄을 복사했습니다.

그렇지 않으면
// CMyCla::CMyCla(CWnd* pParent /*=NULL*/) 
// : CDialog(CCycleTimes::IDD, pParent) 

아래 syte로 성공적으로 댓글, 아래의 스타일로 실패 댓글을 달았습니다.

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

왜 주석 작업이 실패 했습니까?

답변

10
이 매개 변수의 기본값이 지정된 클래스 선언에서 가장 가능성

: CMyCla :: CMyCla의 구현에 지금

class CMyCla { 
public: 
    CMyCla(CWnd* pParent =NULL); 
}; 

() 매개 변수의 기본값을 재정의 할 수 없습니다하지만, 저자는 아마도 기본값이 있음을 상기시켜주기를 원했기 때문에 주석으로 처리했습니다.

당신은 다음 작업을 수행 할 때 : 지금 메모가 모든 후, 그래서

/* 
    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

컴파일러가 첫 번째 /*에서 다음 */까지 읽는 중 (다른 하나는 /*을 포함하여 모든 내용을 무시하기 때문에) 주석 작업이 실패했습니다. 또한, sharptooth가 올바른 값을 redfine 할 수 없으므로 포인터의 기본값 일 것입니다.