2011-06-02 83 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));