Тема: Як оголосити і як використати функцію та взагалі
Доброго дня! Я щось наплутав. Відбувається помилка
error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию d:\rozbir\shablony\shablony\shablony\shablony.cpp 114 1 Shablony
Це в рядку
A = Printer (ArrayOfZeros, Psize );
#include <iostream>
#include <stdlib.h>
#include <conio.h>
template<class T, class T1> class array
{
public:
array(int size);
T1 sum(void);
T average_value(void);
void show_array(void);
int add_value(T);
private:
T *data;
int size;
int index;
};
//Далі, перед кожною функцією класу ви повинні вказати такий же запис зі словом
//template. Крім того, відразу ж після імені класу ви повинні вказати типи класу
template<class T, class T1> array<T, T1>::array(int size)
{
data = new T[size];
if (data == NULL)
{
std::cerr << "Недостатньо пам'яті - програма завершується" << std::endl;
exit(1);
}
array::size = size;
array::index = 0;
}
template<class T, class T1> T1 array<T, T1>::sum(void)
{
T1 sum = 0;
for (int i = 0; i < index; i++) sum += data[i];
return(sum);
}
// //визначення функції average _ value для цього класу:
template<class T, class T1> T array<T, T1>::average_value(void)
{
T1 sum =0;
for (int i = 0; i < index; i++) sum += data[i];
return (sum / index);
}
template<class T, class T1> void array<T, T1>::show_array(void)
{
for (int i = 0; i < index; i++) std::cout << data[i] << ' ';
std::cout << std::endl;
}
template<class T, class T1> int array<T, T1>::add_value(T value)
{
if (index == size)
return(-1); // Масив повний
else
{
data[index] = value;
index++;
return(0); // Успішно
}
}
int *Psize;
template< class T >
T* CreateArray( T(*GetValue)(), const int size )
{
Psize = &size;
T *Array = new T[ size ];
for( int i = 0; i < size; i++ )
Array[i] = GetValue();
return Array;
}
int GetZero() { return 0; }
char InputChar()
{
char c;
std::cin >> c;
return c;
}
template< class T >
bool Printer(T*PrintValue, int *Psize )
{
for (int i=0, i<*Psize, i++)
{
std::cout << "Распечатаємо значенння ." << *(PrintValue+i) << std::endl;
}
return true;
}
bool A,S;
int *ArrayOfZeros = CreateArray( GetZero, 20 );
A = Printer(ArrayOfZeros, Psize );
char *String = CreateArray( InputChar, 40 );
S = Printer(String, Psize );
void main(void)
{
// Масив зі 100 елементів
array<int, long> numbers(100);
// Масив з 200 элементів
array<float, float> values(200);
int i;
for (i = 0; i < 50; i++) numbers.add_value(i);
numbers.show_array();
std::cout << "Сума чисел рівна " << numbers.sum () << std::endl;
std::cout << "Середнє значення рівне " << numbers.average_value() << std::endl;
for (i = 0; i < 100; i++) values.add_value(i * 100);
values.show_array();
std::cout << "Сума чисел рівна." << values.sum() << std::endl;
std::cout << "Середнє значення рівне " << values.average_value() << std::endl;
_getch();
}