C++循环依赖项按值返回
C++ circular dependency returning by value?
在C++中通过指针或引用返回时,很容易通过前向声明打破循环依赖关系。但在必须按价值回报的情况下,你该怎么办?
考虑下面的简化示例
struct Foo {
Bar bar() {return Bar{*this}; }
};
struct Bar {
Foo foo;
}
有什么方法可以打破循环依赖关系吗?尝试转发声明Bar只会导致对不完整返回类型的投诉。
定义这两种类型,声明它们的成员函数。然后在类之外定义成员函数,甚至在第二个类定义之后。
struct Bar;
struct Foo {
Bar bar();
};
struct Bar {
Foo foo;
};
Bar Foo::bar() {return Bar{*this}; }
相关文章:
- 为什么我的程序在for循环中k=0时返回垃圾值
- 我可以使用什么来停止循环而不是"返回 0"?
- 为什么在 while 循环中返回表达式不起作用
- 从嵌套循环中的 std::list 中删除将返回访问冲突
- 这个返回元素位置的基于循环的函数有什么问题?
- EnQueue 方法在循环队列中未正确返回C++?
- C++初学者:为什么我的编译器根据我的循环返回"name not found"?
- 如何循环访问 cpp 中的函数返回的字符指针数组
- C++:返回一个基于范围 for 循环迭代器,其中包含继承对象
- 从子菜单返回后,正确的输入至少进入验证循环一次
- 对于等待以 std::future wait() 返回的函数的 CPU 使用率或检查标志在循环中休眠一段时间哪个更好?
- 有没有办法将 for 循环结果返回到像三元运算符这样的函数中?
- 返回值 mxGetPr() -- 等效循环
- 返回到循环 c++
- 从 for 循环返回每个值 in C++
- 当我返回内部时,循环在C 中不起作用
- 基于范围的 for 循环,用于包含C++中的指针的自定义链表,仅返回对象
- 随机函数在循环中调用时返回相同的数字!C++
- 在 winapi 回调函数上返回 FALSE 时出现意外行为(循环被跳过?
- C++ - 返回循环开始而不检查条件