我在不同的命名空间中有2个类,它们都需要包含相同的Image.h类,但是当我同时包含时会出现错误。在这里我的课程:
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_ */
主要应用程序类:这包括Images / Image.h和Filter / 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类
#ifndef IMAGE_H_
#define IMAGE_H_
#include "Image.h"
namespace Images {
class Image {
public:
Image();
virtual ~Image();
private:
int** imatrix(int nrl,int nrh,int ncl,int nch);
};
} /* namespace Image */
#endif /* IMAGE_H_ */
感谢您的帮助
答案 0 :(得分:2)
class FilterManager {
public:
Images::Image* applyFilter(int filterType, PGMImage *pgmImage);
};
你忘记了命名空间。
我没有看到任何#include“PGMImage.h” 它在哪里?什么是PGMImage?
为什么在Image.h中有一个包含到Image.h?
答案 1 :(得分:0)
您可能没有多个包含但有命名空间的问题,请尝试从Images::Image
方法返回applyFilter
。