【发布时间】:2017-03-26 21:04:25
【问题描述】:
我有一个带有构造函数的类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
}
};
我这样做是为了让我的代码中有一个“空”characterData。我的思考过程是如果num == -1、setValues() 尚未在characterData 对象上调用。
稍后在我的代码中,我有一个 characterData k,它只是被初始化,setValues() 没有被调用,所以 k.num == -1。
最终我更改了k 的值,但希望将其“重置”为原始形式。
characterData k;
// some assignments happen, k = something else
k = new characterData(); // reset k
以上行不通。我需要重置k,这样k.num == -1。没有成员 setter/mutator 函数可以让我更改 num:我的想法是调用构造函数,但这不起作用。
如何将k 重置为“空”状态?
【问题讨论】:
-
如果他们用
n == -1调用setValues怎么办? -
@M.M
n派生自list的大小。如问题所述,n永远不会低于 0。
标签: c++ object constructor