这个构造函数是否返回一个实例?

时间:2015-04-23 10:57:09

标签: c++ constructor

virtual BOOL Create( 
    LPCTSTR lpszCaption, 
    DWORD dwStyle, 
    const RECT& rect,  //we need to pass a RECT instance
    CWnd* pParentWnd, 
    UINT nID  
);

// Create a push button.
myButton1.Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, 
CRect(10,10,100,30), pParentWnd, 1);

CRect(10,10,100,30)是一个构造函数,这是否意味着构造函数返回一个实例?

2 个答案:

答案 0 :(得分:1)

// CRect(10,10,100,30)是一个构造函数......

不,不是。它是一个对象的声明。它确实调用了构造函数,但是对象是在本地创建的,而不是由构造函数返回。

答案 1 :(得分:0)

此代码等同于以下内容:

CRect rect = CRect(10,10,100,30);

// Create a push button.
myButton1.Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, 
rect, pParentWnd, 1);

构造函数返回它构造的类的实例,由Create函数使用。