如何在课堂上获得正确的输出?

时间:2014-08-07 03:38:55

标签: c++

这是没有参数的默认构造函数。默认情况下,这会为a分配空间 大小为10的double数组,并为每个数组指定默认值0。

它是一个“”类“”,我不确定我做的是对还是错......

我填写公共机构功能,但我的输出是没有想象打印0000000000 ,我对编码很新。

 class DataVector
 {
 private:
     DataType *m_data;//Pointer to dynamically allocated memory that holds all items
     UIntType m_size;//Size of the m_data array

 public:

     DataVector()
     {
         double *m_data = new double[m_size];
         for (int i = 0; i < m_size; i++)
         {
             *m_data = 0;
             m_data++;
         }
     }

     void PrintItems()
     {
         for (int i = 0; i < m_size; i++)
         {
             cout << *m_data << " ";
             m_data++;
         }
     }
};

void TestDataVector()
{
    {
        DataVector d1;
        d1.PrintItems();
    }
}

1 个答案:

答案 0 :(得分:1)

这种实施方式存在一些问题:

  • 您尚未初始化m_size
  • 您更改了指针m_data的值,该指针应该包含数组第一个成员的地址。因此,在初始化程序结束时,m_data指向由new分配的块之后的一个点。
  • printItems成员函数中相同,但此处指针已指向无效位置。
  • 另外,因为你在构造函数中分配内存,所以你还应该定义一个析构函数来释放那个内存。