template <class T>
Row<T> Array2D<T>::operator[](int index) const
{
}
Этот код не работает, выдавая ошибку 'Объявление несовместимо с "Array2D :: Row Array2D :: operator [] (int index) const" (объявлено в строке 19 ". Я использую 2 шаблонных класса, и Я полагаю, что это главная проблема, но я не уверен, как это исправить. Любая помощь приветствуется, дайте мне знать, если мне нужно больше деталей. Спасибо.
Объявление класса:
#pragma once
#include "Array.h"
#include "Row.h"
template <class T>
class Array2D
{
template <class T> class Row;
public:
Array2D();
Array2D(int row, int col);
Array2D(const Array2D & copy);
~Array2D();
Array2D & operator =(const Array2D & rhs);
Row<T> operator[](int index) const;
int getRow() const;
void setRow(int rows);
int getColumns() const;
void setColumns(int columns);
T & Select(int row, int column);
private:
Array<T> m_array;
int m_row;
int m_col;
};
Класс строки:
#pragma once
#include "Array2D.h"
template <class T>
class Row
{
template <class T> class Array2D;
public:
Row(Array2D<T> & array, int row);
T & operator[](int column);
private:
Array2D<T> & m_array2D;
int m_row;
};
template <class T>
Row<T>::Row(Array2D<T> & array, int row)
{
}
template <class T>
T & Row<T>::operator[](int column)
{
}