При попытке закодировать лучшую версию типа массива я столкнулся с проблемой. Декларация почему-то не работает. Он выдает мне кучу странных ошибок. Пробовал искать проблему, но пока ничего не нашел. Вот код:
Template <class T>
class SafeArray {
private:
int size;
int elements;
int index;
T* arr;
public:
SafeArray(int n);
~SafeArray();
void push_back(T item);
void resize(int size);
friend std::ostream& operator << (std::ostream& os, const SafeArray<T>& ar)
};
И реализация вне класса:
template<class T>
std::ostream& operator << <T> (std::ostream& os, const SafeArray<T> & arr) {
for (int i = 0; i < arr.elements; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
return os;
}
Я сделал это, но все равно получаю ошибки: ошибка C3646: «T»: неизвестное спецификатор переопределения. Примечание: см. ссылку на создание экземпляра шаблона класса «SafeArray<T>» при компиляции ошибка C2988: неузнаваемая ошибка объявления/определения шаблона C2059: синтаксическая ошибка: '&' ошибка C2334: неожиданный токен(ы) перед '{'; пропуск видимого тела функции
@TomatoLV Есть и другие проблемы, посмотрите живую демонстрацию, которую я опубликовал.