Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在课堂上获得正确的输出?_C++ - Fatal编程技术网

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

C++ 如何在课堂上获得正确的输出?,c++,C++,这是没有参数的默认构造函数。默认情况下,这会为 大小为10的双数组,并为每个数组指定默认值0 这是一个“类”,我不确定我做的是对的还是错的 我填充公共机构函数,但我的输出为空,假设打印0000000000 ,我对编码很陌生 class DataVector { private: DataType *m_data;//Pointer to dynamically allocated memory that holds all items UIntType m_size;/

这是没有参数的默认构造函数。默认情况下,这会为 大小为10的双数组,并为每个数组指定默认值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();
    }
}
类数据向量
{
私人:
DataType*m_data;//指向保存所有项的动态分配内存的指针
UIntType m_size;//m_数据数组的大小
公众:
数据向量()
{
double*m_数据=新的double[m_大小];
对于(int i=0;icout您的这种实现存在一些问题:

  • 您没有初始化
    m\u大小
  • 更改指针
    m_data
    的值,该指针应保存数组第一个成员的地址。因此,在初始值设定项末尾,
    m_data
    指向由
    new
    分配的块后的一个点
  • printItems
    成员函数中也是如此,但此处指针已指向无效位置
  • 此外,由于您正在构造函数中分配内存,因此还应该定义析构函数来释放该内存