我有两个课程:Meter
和Feet
。每个都有一个方法,将其值转换为另一个并返回另一个对象。例如,Meter
有一个方法toFeet()
,它返回Feet
个对象,反之亦然。
我 使用前向声明。我也试过包括和(正如另一篇文章所建议的)不包括其他类的头文件。
Meter.h
...
class Feet; // forward declaration
class Meter {
public:
...
Feet toFeet() const { return Feet(...); }
...
};
Feet.h
...
class Meter; // forward declaration
class Feet {
public:
...
Meter toMeter() const { return Meter(...); }
...
};
我收到以下错误:
In member function 'Feet Meter::toFeet() const':
error: return type of 'class Feet' is imcomplete
{
^
error: invalid use of incomplete type 'class Feet'
error: forward declaration of 'class Feet'
那么我想念的是什么概念性的东西?
编辑:帖子被标记为重复,答案是前向声明。但是在发布这个问题之前我已经尝试过了。
无论如何,我接受(并且非常简单)的解决方案是分离声明和方法的定义。