我有一个带有构造函数的类characterData
:
class characterData() {
private:
int position[2];
vector<vector<int> > pixelData;
int num;
public:
characterData() {
num = -1;
}
void setValues(int p[2], vector<vector<int> > v, int n) {
position[0] = p[0];
position[1] = p[1];
pixelData = v;
num = n; // if setValues() is called, n will always > -1
}
};
我这样做,所以我可以有一个&#34;空&#34;我的代码中characterData
。我的思维过程是num == -1
,setValues()
对象上没有调用characterData
。
稍后在我的代码中,我有一个characterData k
,它只是初始化,setValues()
尚未被调用,所以k.num == -1
。
最终我更改k
的值,但希望&#34;重置&#34;它的原始形式。
characterData k;
// some assignments happen, k = something else
k = new characterData(); // reset k
上述方法无效。我需要重置k
k.num == -1
。没有成员setter / mutator函数可以让我完全改变num
:我的想法是回忆构造函数,但这不起作用。
如何将k
重置为&#34;空&#34;状态?
答案 0 :(得分:5)
再次使用默认构造函数:
characterData c;
c.setvalues( ... );
c = characterData();
虽然我不会说这是一个特别好的设计。
答案 1 :(得分:4)
可能添加clear
功能吗?
void clear() {
num = -1;
}