如何动态分配指向对象的指针数组

How to dynamically allocate an array of pointers to objects?

本文关键字:指针 数组 对象 动态分配      更新时间:2023-10-16

我不知道马的数目。我已经试过了,但我会出错,我不知道为什么。我基本上是在尝试创建一个指向对象的指针数组。所有的东西都在这个班叫马。这是我的东西。我仍然收到来自c++编译器的错误。

horse::horse(string horse_Name, string rider_Name, int distance_Traveled, int max_Distance_Per_Second)
{
    distance_Traveled = 0;
    const int number_Of_Horses = 1;
    horse **ptr = new horse*[number_Of_Horses];
    *ptr[number_Of_Horses] =
    {
    horse(horse_Name, rider_Name, distance_Traveled, max_Distance_Per_Second)
    };

    max_Running_Distance_Per_Second(max_Distance_Per_Second);
}
distance_Traveled = 0;

由于distance _ Traveled不是通过引用传递的,因此它不会更改原始值。这可能是一个错误。

horse **ptr = new horse*[number_Of_Horses];

此指针声明正确;然而,当你试图使用迭代(或其他表达式,只是我的猜测)时,你必须小心,因为:

当它是一个数组时,*ptr[number_Of_Mhorses]是非法的,因为数组以0而不是1开头。这是一个常见的错误。这可能是一个重大问题。