我使用数组来创建类的实例。
我在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();
}
有人知道错误的来源吗?
答案 0 :(得分:4)
数组是0索引的,数组的最后一个位置是i_soldier-1
,将条件更改为严格<
。