gpt4 book ai didi

引用对象变量的c++复制赋值运算符

转载 作者:太空狗 更新时间:2023-10-29 23:43:48 29 4
gpt4 key购买 nike

我举下面的例子来说明我的问题:

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_;
}
};

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

最佳答案

引用不能赋值给。你需要一些可以的东西。指针可以工作,但它们很容易被滥用。

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();
}
};

关于引用对象变量的c++复制赋值运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41147201/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com