这是没有参数的默认构造函数。默认情况下,这会为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();
}
}
答案 0 :(得分:1)
这种实施方式存在一些问题:
m_size
m_data
的值,该指针应该包含数组第一个成员的地址。因此,在初始化程序结束时,m_data
指向由new
分配的块之后的一个点。printItems
成员函数中相同,但此处指针已指向无效位置。