私が間違っていることを理解できませんか?私はプライベートデータを持つクラスを持っています:
static const int SIZE = 101;
int *ptr;
int set [SIZE];
そして、私は2つのコンストラクターを持っています。1 つは、配列を 0 に設定する既定のコンストラクターです。もう 1 つは、5 つの引数を取り、配列内の 5 つの値を 1 に設定します。この配列を出力する必要があります。私がコンストラクターにいるとき、すべてが機能しています。コンストラクター内で cout << を実行すると、結果は正しくなります。しかし、関数印刷を使用しようとしているとき。結果はゴミ。私が間違っていることは何ですか?
IntegerSet::IntegerSet() //default constructor
{
int set[SIZE] = {0};
ptr = set;
cout << "Default Constructor: " << endl;
for (int i =0; i<SIZE ;i++)
{
cout << set[i] << " ";
}
cout << endl;
}
IntegerSet::IntegerSet(int a, int b, int c, int d, int e)
{
int set[SIZE] = {0};
ptr = set;
ptr[a] = ptr[b] = ptr[c] = ptr[d] = ptr[e] = 1;
cout << "Constructor with 5 parametrs: " << endl;
for (int i =0; i<SIZE ;i++)
{
cout << ptr[i] << " ";
}
cout << endl;
}
void IntegerSet::print() const
{
bool flag = false;
cout << "I am in print: " << endl;
for (int i=0;i<SIZE;i++)
{
if (ptr[i]==1)
{
cout << i << " ";
flag = true;
}
}
if (flag == false)
cout << "-----";
cout << endl;
}
void main()
{
IntegerSet s1;
IntegerSet s2(1,50,10,22,98);
s2.print();
}