я получаю эту ошибку:ошибки: Illegal нулевого размера массив
error C2229: class 'GenerateRandNum<int [],int>' has an illegal zero-sized array
В моем основных, я называю случайную функцию генератора на вход в пустые набора данных
я вызываю метод в моем основных, как так:
//declare small array
const int smallSize = 20;
int smallArray[smallSize];
// call helper function to put random data in small array
GenerateRandNum <int[], int> genData(smallArray, smallSize);
genData.generate();
Заголовочный файл
template <class T, class B>
class GenerateRandNum
{
public:
T data;
B size;
GenerateRandNum(T list, B length)
{
data = list;
size = length;
}
void generate();
};
Файл с определением метода
template<class T, class B>
void GenerateRandNum<T, B> ::generate()
{
for (B i = 0; i < size; i++)
{
data[0] = 1 + rand() % size;
}
}
Типы параметров шаблона 'genData' не будут выводиться из аргументов конструктора, вам необходимо передать их явно:' GenerateRandNum '. –
Кроме того, вы не можете сделать это 'data = list', потому что массивы не могут быть назначены. –