如何将数组分配给构造函数中的另一个数组?


一生浮华
2025-02-26 07:01:30 (7天前)
  1. 我目前正在参加游戏编程模块1/2的第7章第二次练习pdf。我完全迷失了如何实现两个功能。这两个功能是:第三个......

3 条回复
  1. 0# 一生流水 | 2019-08-31 10-32



    在复制构造函数中,您必须:





    1. 设置值

      mSize

      与您要创建副本的对象相同。





    2. 确保为其分配内存

      mData

      对象的成员。





    3. 从要创建副本的对象复制数组的每个元素。



    4. </醇>





      1. FloatArray::FloatArray(const FloatArray &rhs) : mSize(rhs.mSize)
        {
        mData = = new float[mSize];
        for ( int i = 0; i < mSize; ++i )
        {
        mData[i] = rhs.mData[i[;
        }
        }

      2. </code>


      对于赋值运算符,最好使用

      复制和交换习语



  2. 1# 苞米地里的蒙面妖 | 2019-08-31 10-32




    第三个构造函数(从另一个数组创建一个数组)




    你的构造函数不会从另一个数组创建数组,它只是创建一个指向的数组的本地指针

    FloatArray

    你通过了,此时仍然只有1个数组存在。并且你有内存泄漏,因为在超出范围之前不释放指针。



    如果您只是想复制您的对象,那么您只需删除您的复制构造函数(您的第三个构造函数)就可以进行浅层复制,它会自动为您完成。


登录 后才能参与评论