Я работаю над заголовком массива из базового определения массива для создания массива любого типа с этим заголовком, поэтому я создал класс массива с функциями и конструкторами. это мой код до сих пор:Создать массив с помощью указателей
#include <iostream>
#define newline "\n"
class Arr
{
public:
typedef float T;
public:
Arr(int size);
Arr(int size, T fill);
T get(unsigned index) const;
void set(unsigned index, T newvalue);
unsigned Size() const;
unsigned SIZE;
void Print();
private:
};
Arr::Arr(int size,T fill)
{
SIZE = size;
T *pointer;
for (int i = 0; i < size; i++)
{
*pointer = fill;
pointer++;
}
}
void Arr::set(unsigned index, T newvalue)
{
T *pointer;
pointer = 0;
for (unsigned i = 0; i < index; i++)
{
pointer++;
}
*pointer = newvalue;
}
void Arr::Print()
{
T *pointer;
pointer = 0;
for (unsigned i = 0; i < SIZE; i++)
{
std::cout << *pointer << newline;
pointer++;
}
}
я знаю, что моя точка указателя на нет, так как мой вопрос мой указатель должен указывать на то, что, чтобы сделать этот код работать правильно ?! в любое время, когда я укажу его на 0 после отладки, он сработает! спасибо ...!
Ваш код слишком ошибочен. [Читать книгу] (http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list). Если у вас есть вопросы о чем-то, что книга пытается учить, вы можете спросить их здесь. Когда вы достаточно уверены в материале книги, ваш код должен быть менее ошибочным. –
Вы не выделили память T в указателе T * в конструкторах Arr. Более того, даже если вы это сделали, вы не отслеживаете его нигде и доступны только в области методов не на уровне класса. – Abhinav
Возможно, частный массив, или вы можете отказаться от всего класса и просто использовать std :: vector –
IdeaHat