Image.hНаследование и Пространства имен в C++
#include <iostream>
#include "Array.h"
using namespace math;
namespace imaging
{
class Image: public Array
{
public:
Image();
};
}
Array.h
namespace math
{
template <typename T>
class Array
{
protected:
T * buffer;
unsigned int width, height;
public:
Array(unsigned int w, unsigned int h);
};
}
и Array.cpp
#include <iostream>
using namespace std;
namespace math
{
Array::Array(unsigned int w, unsigned int h)
{
this->width = w;
this->height = h;
}
}
У меня есть эти ошибки: Image.h: 12 : 2: ошибка: ожидаемое имя класса до {
токен
{
^ В файле включены из Image.cpp: 1: 0: Image.h: 12: 2: ошибка: ожидается имя-класса, прежде чем {
лексем
{
^ Array.cpp: 8: 2: ошибка: неверное использование имени шаблона math::Array
без списка аргументов Array::Array(unsigned int w, unsigned int h)
Любая помощь для этого ??? Thnx
Вы должны шаблон-Изе класс 'Image'. 'template class Image: public Array {}' –
P0W
Небольшой комментарий об именах: массив известен как базовый 1D-набор записей в C и C++. в C++ существует также 'std :: array', поэтому присвоение двумерного массива' Array' может быть в порядке в проблемной области, но запутанно в C++. – stefaanv