包含类实例的数组中的错误值(C ++)

时间:2015-03-26 15:05:53

标签: c++ arrays instance

我使用数组来创建类的实例。

我在Header文件中声明了它们:

Figure *soldier;
Fight *weapon;

在cpp中我使用以下代码创建它:

std::cout << "How many soldier? ";
std::cin >> i_soldier;
std::cout << "How many weapon? ";
std::cin >> i_weapon;

soldier= new Figure[i_soldier];
weapon = new Fight[i_weapon];

类图有这个构造函数:

Figure::Figure()
{
    position = 0;
}

当我运行代码时,它编译得很好,但是当我查看开头的位置时,最后一个数组条目的值是错误的;我猜它指的是内存地址的值。所有其他条目的值均为0。

这就是我说我想去哪个实例的方式。

    for(int i = 0; i <= i_soldier; i++)
    {
        soldier[i].position();
    }

有人知道错误的来源吗?

1 个答案:

答案 0 :(得分:4)

数组是0索引的,数组的最后一个位置是i_soldier-1,将条件更改为严格<