两个可以返回彼此对象的类

时间:2014-12-26 02:49:29

标签: c++ class

我有两个课程:MeterFeet。每个都有一个方法,将其值转换为另一个并返回另一个对象。例如,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'

那么我想念的是什么概念性的东西?

编辑:帖子被标记为重复,答案是前向声明。但是在发布这个问题之前我已经尝试过了。

无论如何,我接受(并且非常简单)的解决方案是分离声明和方法的定义。

0 个答案:

没有答案