2011-06-02 51 views
1

我想为Qt的QSize类创建一个包装。 这是代码片段。从QSize创建CSize包装

class CSize 
{ 
private: 
    QSize m_szSize; 

public: 
    int cx,cy; 

CSize(); 
CSize(int cx,int cy) 
{ 

} 
CSize(const CSize& obj) 
{ 
    m_szSize.setWidth(obj.cx); 
    m_szSize.setHeight(obj.cy); 
} 
}; 

但当下面的情况到来时,

CSize sz; 
sz.cx = 10; 
sz.cy = 20; 

如何更新的m_szSize值。 有人请帮助我。

回答

1

你需要把cxcy为私有,并添加访问器cxcy

void setCx(int p_cx) { cx = p_cx; m_szSize.setWidth(cx); } 
void setCy(int p_cy) { cy = p_cy; m_szSize.setHeight(cy); } 
int getCx() const { return cx; } 
int getCy() const { return cy; } 
0

这可能是更安全的保持在一个QSIZE的数据,并在需要时只需要创建的CSize。

例如,如果你需要一个呼叫CSIZE一些exisitng API

CallToSomeOldAPI(CSize(m_qsize.x,m_qsize.y));