今天用VS2015的时候遇到了这样一个问题
点击中断之后,又出现了这样的问题
查了一下,发现都是说指针越界以及new了空间之后没有delete
认真检查了我的代码,发现并没有上述情况,但是我的构造函数是这样写的
//1、有参构造函数
MyArray(int capacity):m_Capacity(capacity),m_Size(0),pAddress(new T[m_Capacity])
{
}
private:
T* pAddress; //指针指向堆区开辟的真实数组
int m_Capacity; //数组容量
int m_Size; //数组大小
之前看过侯捷老师的视频,就记住了这么写,至于为什么也忘了
我又将构造函数写成了常规的形式
MyArray(int capacity)//:m_Capacity(capacity),m_Size(0),pAddress(new T[m_Capacity])
{
//cout << "MyArry的有参构造调用" << endl;
this->m_Capacity = capacity;
this->m_Size = 0;
this->pAddress = new T[m_Capacity];
}
于是bug没了,应该是初始化pAddress的时候有问题,this->pAddress = new T[m_Capacity];
暂且记录下来。
扫描二维码关注公众号,回复:
12933880 查看本文章