У меня возникают проблемы с созданием экземпляра объекта типа класса шаблона в C++.
Вот код:
Массив.ч:
//Developed by Trofimov Yaroslav on 30.03.2018
#ifndef _ARRAY_H_TROFIMOV_
#define _ARRAY_H_TROFIMOV_
template<size_t n, typename T>
class Array
{
static unsigned __freeId, __quantity;
unsigned _id;
T* _array;
public:
template<size_t n, typename T>
Array(void);
~Array(void);
T& operator[](const size_t);
};
#include "Array.cpp"
#endif
Массив.cpp:
//Developed by Trofimov Yaroslav on 30.03.2018
#include "Array.h"
template<size_t n, typename T>
Array::Array(void)
: _id(++__freeId), _array(new T[]) {
}
template<size_t n, typename T>
Array::~Array(void) {
}
template<size_t n, typename T>
T& Array::operator[](const size_t i) {
}
Основной.cpp:
//Developed by Trofimov Yaroslav on 30.03.2018
#include <iostream>
#include "Array.h"
int main(void) {
Array<7, int> a;
return 0;
}
Теперь, когда я навожу курсор на a
в Main.cpp
, я вижу следующее:
Ошибка: не существует конструктора по умолчанию для класса "Array‹7U, int>"
Но, как видите, конструктор шаблонов по умолчанию существует. Итак, что мне здесь не хватает?
template<size_t n, typename T> Array(void);
--›Array();
stackoverflow.com/questions/495021/ - person llllllllll   schedule 30.03.2018template
из конструктора, оно там не место. Кроме того, в вашем файле cpp вам нужно заменить всеArray::
наArray<n, T>::
- person Remy Lebeau   schedule 30.03.2018Array::
и удаленияtemplate
я получил ошибку как неправильный синтаксис. Поэтому не вижу смысла в ваших советах. - person ggghahaha   schedule 30.03.2018