gpt4 book ai didi

C++循环依赖按值返回?

转载 作者:太空狗 更新时间:2023-10-29 20:02:42 24 4
gpt4 key购买 nike

在 C++ 中通过指针或引用返回时,很容易用前向声明打破循环依赖。但是,在必须按值返回的情况下,您会怎么做?

考虑下面的简化示例

struct Foo {
Bar bar() {return Bar{*this}; }
};

struct Bar {
Foo foo;
}

有没有办法打破循环依赖?尝试转发 declare Bar 只会导致有关不完整返回类型的投诉。

最佳答案

定义这两种类型,声明它们的成员函数。然后在类外定义成员函数,甚至在第二个类定义之后。

struct Bar;
struct Foo {
Bar bar();
};

struct Bar {
Foo foo;
};

Bar Foo::bar() {return Bar{*this}; }

关于C++循环依赖按值返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37127351/

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