関数が戻り値とパラメーターとして相互に型定義されたポインターを取る 2 つのクラスがあります。すなわち:
class Segment;
class Location : public Fwk::NamedInterface {
public:
// ===== Class Typedefs =====
typedef Fwk::Ptr<Location const> PtrConst;
typedef Fwk::Ptr<Location> Ptr;
// ===== Class Typedefs End =====
void segmentIs(Segment::Ptr seg);
/* ... */
}
およびクラスの場所。
class Segment : public Fwk::NamedInterface {
public:
// ===== Class Typedefs =====
typedef Fwk::Ptr<Segment const> PtrConst;
typedef Fwk::Ptr<Segment> Ptr;
// ===== Class Typedefs End =====
void locationIs(Location::Ptr seg);
/* ... */
}
これは当然のことながらリンカ エラーを生成しました...それぞれのクラスの前方宣言では修正されません。Ptr
これらの typedef をクラス内部に保持しながら、およびPtrConst
typedefを前方宣言するにはどうすればよいですか(つまりLocation::Ptr
、ロケーション ポインター型を参照するように記述します)。
ありがとう!