非const引用的初始化无效

Urh*_*ila 0 c++ initialization most-vexing-parse

好吧,我正试图弄清楚这个错误,到目前为止,绝对没有运气.我这是为了做作业,这就是为什么我没有使用包含的课程.

这是相关的代码:

//Will return an array where each element is the sum of the respective sums in the added         arrays
Vec& Vec::operator+(Vec& v2) const{
    Vec ret();
    if(mySize>0){
        Vec ret(mySize);
        for(unsigned i = 0;i<mySize;i++){
            ret[i]=v2[i]+myArray[i];
        }
    }
    else{
    }
    return ret;
}
Run Code Online (Sandbox Code Playgroud)

从.h文件......:

Vec& operator+ (Vec& v2) const;
Run Code Online (Sandbox Code Playgroud)

这会引发错误:"从'Vec(*)()'类型的右值''类型'Vec&'类型的非const引用无效初始化"我对C++完全不熟悉,所以任何帮助都会受到赞赏.

Ed *_* S. 7

Vec ret();
Run Code Online (Sandbox Code Playgroud)

被认为是一个函数的前向声明,它不带参数并返回一个Vec.请参阅:最令人烦恼的解析.

接下来,您将返回对局部变量的引用,这是不好的.ret函数返回后立即超出范围.