如何在c ++中返回类的引用

Nas*_*Ohi 0 c++ reference class

据我所知,this是一个指针,*this是一个参考.所以,如果我有一个类Sample和一个方法,如:

Sample operator++(){
    int i;
    for(i=0;i<this->length;i++){
        this->array[i]+=1;
    }
    return *this;
}
Run Code Online (Sandbox Code Playgroud)

或者另一种方法.

Sample &operator++(){
    int i;
    for(i=0;i<this->length;i++){
         this->array[i]+=1;
    }
    return *this;
}
Run Code Online (Sandbox Code Playgroud)

在这两者之间,这将是正确的方法吗?

Ed *_*eal 6

第一个将使用复制构造函数.即你得到一份副本.

第二个将只返回一个引用.因此,只存在一个对象,不会进行复制

  • 如果你仍然怀疑答案:第二个. (2认同)