在以下代码中:
#include <iostream>
using namespace std;
class A
{
public:
int a, b, c;
A()
{
a=b=c=0;
}
};
int main()
{
A* a=new A();
A* b=a;
for(int i = 0; i < 10; i++)
{
a = new A();
cout<<a->a<<endl;
cout<<a->b<<endl;
cout<<a->c<<endl;
}
for(int i = 0; i < 10; i++)
{
cout<< b->a <<endl;
cout<< b->b <<endl;
cout<< b->c <<endl;
b++;
}
}
我正在使用指针a制作一个准数组。但是,当我尝试使用b读取此数组时,我得到了垃圾值。问题是b ++没有将b增加一个等于A类对象大小的值。如何使用b读取我的“数组”类?
答案 0 :(得分:2)
根据您的实现,a
指向A
的单个实例,而不是数组。
要创建数组,
A* a = new A[10];
for (int i = 0; i < 10; ++i)
{
A* b = a+i;
cout << b->a << endl;
cout << b->b << endl;
cout << b->c << endl;
}