gat*_*tor 0 c++ constructor object
我有一个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
}
};
Run Code Online (Sandbox Code Playgroud)
我这样做,所以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
Run Code Online (Sandbox Code Playgroud)
以上不起作用.我需要重置k这样的k.num == -1.没有成员setter/mutator函数可以允许我改变num:我的想法是回忆构造函数,但这不起作用.
如何重置k为"空"状态?
小智 5
只需再次使用默认构造函数:
characterData c;
c.setvalues( ... );
c = characterData();
Run Code Online (Sandbox Code Playgroud)
虽然我不会说这是一个特别伟大的设计.