私は異なる名前空間に2つのクラスを持ち、それらは両方とも同じImage.hクラスを含む必要がありますが、同時にインクルードするとエラーが発生します。ここに私のクラス:複数のインクルードをC++で防ぐ
FilterManager.h:
#ifndef FILTERMANAGER_H_
#define FILTERMANAGER_H_
#include "../Images/Image.h"
namespace Filter {
class FilterManager {
public:
Image* applyFilter(int filterType, PGMImage *pgmImage);
};
} /* namespace Filter */
#endif /* FILTERMANAGER_H_ */
メインアプリケーションクラス:これは同時に画像/ Image.hとフィルタ/ FilterManager.hが含まれており、私はエラーを取得します。
#include <iostream>
#include <stdlib.h>
#include <fstream>
#include <stdio.h>
#include "Images/Image.h"
#include "Filter/FilterManager.h"
using namespace std;
int main() {
//new typename ImageIO::ImageIO;
Images::Image *Image = NULL;
Filter::FilterManager::getInstance();
pgmImage = imageIO->readPGM("Resources/house.256.pgm");
return 0;
}
そしてImage.hクラス任意のヘルプ
ええと...何のエラー? Image.hの内部はどうですか? –
Image.hのコードを表示できますか? '#ifndef IMAGE'を使用していますか?それはどんなタイプのエラーですか? –
私の質問が更新されます – cagryInside