c++ - 如何通过引用返回对象

标签 c++ oop reference operator-overloading

据我了解,这是我的引用SomeClass&ref = b;之后b = ref;那么c = b; SomeClass&ref2 = c;然后c = ref2。但是,当b = ref或c = ref2时,我是否要给运算符=我重新加载?这样的东西a.operator =(ref)?

class SomeClass
{
public:
    SomeClass()
    {
        a = 5;
    }
    SomeClass(int l_a)
    {
        a = l_a;
    }

    SomeClass& operator=(const SomeClass& l_copy)
    {
        this->a = l_copy.a;
        return *this;
    }

    int a;
};

int main()
{
    SomeClass a;
    SomeClass b(1);
    SomeClass с(6);
    с = b = a;

}

最佳答案

通过重载SomeClass中的operator =,您正在执行复制分配lhs = rhs(例如:c = b,c为lhs和b为rhs)。因为它返回与SomeClass& operator=预期参数类型匹配的引用,所以您可以链接多个副本分配,例如c = b = a

关于c++ - 如何通过引用返回对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60277109/

相关文章:

c++ - 如何将字符数组复制到剪贴板?

c++ - 访问者模式中访问的每个元素的计算结果存储在哪里?

oop - 编译器如何编译虚拟/重写方法

php - 玩引用

c++ - 如何从 extern "C"函数访问类变量?

c++ - 在 ATL 中使用 STL

oop - 是否可以通过 SOA 应用 HATEOAS 原则?

python - 处理对象中的文件

c++ - 返回类成员引用变量导致运行时错误

java - 检查泛型java中的引用类型