参考对象变量的c ++拷贝赋值运算符

fee*_*ree 2 c++

我给出以下示例来说明我的问题:

class Abc
{
public:
    int a;
    int b;
    int c;

};

class Def
{
public:
    const Abc& abc_;

    Def(const Abc& abc):abc_(abc) { }

    Def& operator = (const Def& obj)
    {
        // this->abc_(obj.abc_);
        // this->abc_ = obj.abc_;
    }
};
Run Code Online (Sandbox Code Playgroud)

这里我不知道如何定义复制赋值运算符.你有什么想法?谢谢.

Ric*_*ges 6

引用无法分配给.你需要的东西可以.指针可以工作,但它们非常容易被滥用.

怎么样std::reference_wrapper

#include <functional>

class Abc
{
public:
    int a;
    int b;
    int c;
};

class Def
{
public:
    std::reference_wrapper<const Abc> abc_;

    Def(const Abc& abc):abc_(abc) { }

    // rule of zero now supplies copy/moves for us

    // use the reference
    Abc const& get_abc() const {
      return abc_.get();
    }
};
Run Code Online (Sandbox Code Playgroud)