【发布时间】:2016-08-20 07:45:31
【问题描述】:
我基本上有一个循环依赖问题,其中一个函数使用一个对象对象,而该对象使用该函数。有什么方法可以在不解决此问题的情况下解决此问题?
//function that uses struct
void change_weight(Potato* potato,float byX) { potato->weight+=byX; }
//said struct that uses said function
struct Potato
{
float weight=0.0;
Potato(float weightin) { change_weight(weightin); }
};
请注意,我理解这个例子很愚蠢,但这个例子只包含“问题的本质”,它出现在更复杂的情况下,我有时不知道如何解决它,或者即使它可以可以解决,并且能够做到这一点将非常方便。我在问是否有办法做到这一点而不解决它。
【问题讨论】:
-
您只需要在通常的 .h 和 .cpp 文件之间拆分声明和实现。
-
虽然代码只是一个示例,但它是一个非常糟糕的代码...... :) 该函数更适合作为成员函数。
-
@JoachimPileborg 在回答中:“请注意,我理解这个例子很愚蠢,但这个例子只包含“问题的本质”,它出现在更复杂的情况下,有时我不会知道我将如何解决它,或者即使它可以解决”
标签: c++ c++11 cyclic-dependency