0

私はこのヘッダーファイルを持っています:

//region.hpp
#ifndef REGION_HPP
#define REGION_HPP 
...
#include "spacepoint.hpp"

class Image;
//class SpacePoint;

class Region
{
    Rectangle<SpacePoint> boundaries;
...

このエラーが発生します

error: ‘SpacePoint’ was not declared in this scope

コメントを外すと、次のclass SpacePointようになります。

In instantiation of ‘class Rectangle<SpacePoint>’:
region.hpp:15:27:   required from here
rectangle.hpp:19:7: error: ‘Rectangle<T>::start’ has incomplete type

小さなテスト プログラムで問題を再現しようとしましたが、できません。
これを解決する方法がわかりません。

4

1 に答える 1

1

@Matteoのガイダンスのおかげで、問題を修正しました。
この回答で、ヘッダーファイルの依存関係を表示するようにdoxygenを構成しました
この方法でループを見つける方が簡単でした。
インクルードが不要な場合は、インクルードを削除して宣言を追加しました。私が効果的に目を向けた
場合spacepoint.hpp#include <image.hpp>class Image;

変更前: ここに画像の説明を入力 変更後: (依存関係がなくなっ
たため、グラフは小さくなっています)spacepoint.hppimage.hpp
ここに画像の説明を入力

于 2013-11-03T20:29:19.950 に答える