我正在尝试为Qt的QSize类创建一个包装器。 这是代码段。
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
的值。
有人请帮帮我。
答案 0 :(得分:1)
您需要将cx
和cy
设为私有,并为cx
和cy
添加访问者:
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; }
答案 1 :(得分:0)
将数据保存在qsize中可能更安全,只需在需要时创建CSize。
例如,如果您需要csize来调用某些exisitng API
CallToSomeOldAPI(CSize(m_qsize.x,m_qsize.y));