C++ 中的循环依赖关系问题
Circular dependency issue in c++
我今天在处理复杂库时遇到的一个简约循环依赖问题如下
class Something;
class Test
{
public:
int i;
void process()
{
Something S;
S.doSomething();
}
};
class Something
{
public:
void doSomething()
{
Test t;
t.i = 10;
}
};
int main()
{
Test t;
t.process();
}
test.cxx:10:16:错误:聚合"Something S"的类型不完整,并且 无法定义 S的东西;
使这项工作所需的最小代码更改是什么? 重新排列Test
或Something
类只会交换错误。 我能想到的一个是在doSomething()
中使用全局/静态函数来执行与Test t
对象相关的操作。更好的方法是什么?
因为只有实现依赖于另一个类,所以很容易将它们移出类定义。
在单个源文件中,这只是在定义class Something
后移动Test::process
定义。
class Test
{
public:
int i;
void process();
};
class Something
{
public:
void doSomething()
{
Test t;
t.i = 10;
}
};
// a function defined inside its class definition is an inline member function
inline
void Test::process()
{
Something S;
S.doSomething();
}
int main()
{
Test t;
t.process();
}
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 在包含窗口标头时难以解决循环依赖关系问题
- C++ 中的循环依赖关系问题
- "std::shared_ptr"循环依赖关系是如何导致问题的
- C 如何在Typedef模板和类之间修复依赖关系问题
- WindowsCE 依赖关系问题随着算法的变化而消失
- 视觉C++在解决循环依赖关系时遇到了设计问题
- 模板循环依赖关系问题
- 模板类依赖关系问题