使用指针遍历类的动态分配

时间:2015-03-03 02:58:44

标签: c++ c arrays pointers

在以下代码中:

#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读取我的“数组”类?

1 个答案:

答案 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;
}