私はコンストラクタを持つクラス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
「空」を持つことができますので、私はそれをこのように行います。私の思考プロセスは、characterData
オブジェクトでnum == -1
,setValues()
が呼び出されていない場合です。
後で私のコードでcharacterData k
しか初期化されていません。setValues()
が呼び出されていないので、k.num == -1
です。
最終的にk
の値を変更しますが、元の形式に「リセット」します。
characterData k;
// some assignments happen, k = something else
k = new characterData(); // reset k
上記は機能しません。 k.num == -1
のようにk
をリセットする必要があります。 num
を変更することができるメンバーセッター/ミューテーター関数はありません。私の考えはコンストラクターを呼び出すことでしたが、これは機能しません。
k
を「空」状態にリセットするにはどうすればよいですか?
'setValues'を' n == -1'で呼び出すとどうなりますか? –
@ M.M 'n'は' list'のサイズから導かれます。質問に記されているように、「n」は決して0未満ではありません。 – gator