你能告诉我我的类构造函数有什么问题吗? 代码:
CVector::CVector (int size_)
{
if (size_ > 0)
{
this->size = size_;
this->data = new double[size];
for (int i = 0; i < size; i++)
{
(*this)(i) = i;
}
}
cout << "constructor end" << endl;
return;
}
用法示例:
tvector = CVector(6);
我在输出"constructor end"
后收到访问冲突。
更新: 构造函数调用不正确。 使用
CVector tvector(6);
工作
答案 0 :(得分:6)
我想你想要:this->data[i] = i
;
答案 1 :(得分:2)
我假设您没有添加复制构造函数,并且析构函数释放了您碰巧使用其他代码踩踏的内存。
答案 2 :(得分:1)
在构造函数体的末尾不需要return
语句。
构造函数确实返回一个值,但这是另一个时间的更详细解释。
答案 3 :(得分:0)
我认为是
(*this)(i) = i;
你的意思是
this->data[i] = i;
右?