0
私はcerstaind番号に配列のサイズを短縮したいと思います。私はクラスを持っていますshortend配列の印刷結果が間違っています
class Numbers{
public:
Numbers(){
max = 10;
arr = new int[max];
current = 0;
}
private:
int *arr;
int max;
int current;
}
単純に何をしたいのですか?配列は、数字(10)例えば
arr // 1 2 3 4 5 6 7 8 9 10
が含まれていると私は.shorten(number)
メソッドを呼び出した場合、それは私が方法
arr // 1 2 3 4 5 6
だろう6におけるので、それは、番号を言ったために、配列を短縮します
このメソッドを呼び出して配列を出力すると、出力は1 2 3 4 5 6
になるはずですが、最初の2つの数値がいくつかの乱数fを持つ同じ配列を出力しますROMメモリ。これを引き起こす原因は、どうしたらこれを防ぐことができますか?
印刷機能この
void Numbers::PrintAll(){
for(int i = 0; i < max ; i++){
cout << arr[i] << endl;
}
}
のように見え、
Numbers one;
//として宣言私は、私はSTLコンテナを使用することができます知っているが、私は配列でこれを行うしたいと思います。
このコードはコンパイルされません。このクラスをどのように使用するかを含めて、[最小、完全、および検証可能な例](http://stackoverflow.com/help/mcve)を作成してくださいオブジェクトの初期化、関数の使い方、最も重要なのは結果の出力方法です。 –
質問に追加しました。 – user3706129
あなたのコードを見れば、うまくいくはずだと思いますが、私は[それを複製できません](http://ideone.com/WnrunX)です。したがって、表示されないコードではエラーが発生する可能性が最も高いです。あなたは、価値のあるオブジェクトを関数に渡しますか?または価値によって戻る?デストラクタは何をしていますか?コピーコンストラクタは何をしますか?あなたはコピーコンストラクタを持っていますか? –