我无法弄清楚我做错了什么?我有一堂课,里面有私人数据:
static const int SIZE = 101;
int *ptr;
int set [SIZE];
我有 2 个构造函数。一个是将数组设置为 0 的默认构造函数。另一个接受 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();
}