我有以下错误:
错误:对“Image2Grey :: Image2Grey(int,int)”的未定义引用
我有一个模板Image2和一个类Image2Grey:Image2
树枝是:
\-folder1/
\image2.h
\image2.hpp
\image2Grey.cpp
\image2Grey.hpp
\-folder2/
\main.cpp
当我尝试创建一个新对象Image2Grey时,我有错误,就像我的构造函数不存在一样。我不明白我做错了什么。
这是我的代码:
/ ** main.cpp ** /
#include "../folder1/image2grey.hpp"
int main(int argc, char *argv[]) {
Image2Grey img(6, 10);
return 0;
}
/ ** image2.h ** /
template<typename T>
class Image2D {
public:
Image2D(int width, int height);
protected:
T *image;
};
/ ** image2.hpp ** /
#include "image2d.h"
template<typename T>
Image2D<T>::Image2D(int width, int height){
image = new T[width * height];
}
/ ** image2grey.hpp ** /
#include "image2d.h"
class Image2Grey : Image2D<unsigned char> {
public:
Image2Grey(int width, int height);
/ ** image2grey.cpp ** /
#include "image2grey.hpp"
Image2Grey::Image2Grey(int width, int height) :
Image2D<unsigned char>(width, height) {}
如果你知道我为什么会有这个错误.. 感谢