Здравствуйте, Чили, Вы писали:
Ч>Можно ли создать следущюю конструкцию,
Ч>void* New(<type>, int size)
Ч>{
Ч> return (void*)(new <type>[size]);
Ч>}
Ч>New(int, 5);
Ч>где <type> — имя типа данных?
Сделать то, что вы хотите, я не смог, но есть следующий вариант:
// main.cpp -----------------------------------------------
#include <cstdio>
template <class t, unsigned int size>
class array
{
public:
//конструктор
array() { arrayPtr = new t [size]; }
//деструктор
~array() { delete [] arrayPtr; }
//не-const индексация
t & operator[](unsigned int i) { return arrayPtr[i]; }
//const индексация
const t & operator[](unsigned int i) const { return arrayPtr[i]; }
private:
t * arrayPtr;
};
int main()
{
array<int, 5> a;
a[1] = 8;
printf("a[1] is: %d\n", a[1]);
getchar();
return 0;
}
// конец main.cpp --------------------------------------------