构造函数返回值

时间:2010-04-05 18:58:08

标签: c++ constructor

你能告诉我我的类构造函数有什么问题吗? 代码:

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); 工作

4 个答案:

答案 0 :(得分:6)

我想你想要:this->data[i] = i;

答案 1 :(得分:2)

我假设您没有添加复制构造函数,并且析构函数释放了您碰巧使用其他代码踩踏的内存。

答案 2 :(得分:1)

在构造函数体的末尾不需要return语句。

构造函数确实返回一个值,但这是另一个时间的更详细解释。

答案 3 :(得分:0)

我认为是

(*this)(i) = i;

你的意思是

this->data[i] = i;

右?