C++ 如何在课堂上获得正确的输出?
这是没有参数的默认构造函数。默认情况下,这会为 大小为10的双数组,并为每个数组指定默认值0 这是一个“类”,我不确定我做的是对的还是错的 我填充公共机构函数,但我的输出为空,假设打印0000000000 ,我对编码很陌生C++ 如何在课堂上获得正确的输出?,c++,C++,这是没有参数的默认构造函数。默认情况下,这会为 大小为10的双数组,并为每个数组指定默认值0 这是一个“类”,我不确定我做的是对的还是错的 我填充公共机构函数,但我的输出为空,假设打印0000000000 ,我对编码很陌生 class DataVector { private: DataType *m_data;//Pointer to dynamically allocated memory that holds all items UIntType m_size;/
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;i cout您的这种实现存在一些问题:
- 您没有初始化
m\u大小
- 更改指针
m_data
的值,该指针应保存数组第一个成员的地址。因此,在初始值设定项末尾,m_data
指向由new
分配的块后的一个点
- 在
printItems
成员函数中也是如此,但此处指针已指向无效位置
- 此外,由于您正在构造函数中分配内存,因此还应该定义析构函数来释放该内存