Указатель на объект и operator []
Нужно сделать динамический массив с типом хранимых данных типа template, который потом можно представить как указатель. Нашел неплохой шаблон у Кубенского он вроде хорошо работает но есть есть не больша проблема, через указатель не могу воспользоваться оператором []
Создаем указатель объект
DynArray<char> *s = new DynArray<char>(128);
Ввод и вывод элементов в данный класс осуществляется с помощью оператора индексации [].
так вот вопрос как этим оператором воспользоваться если объект создавался как указатель
вариант типа s.operator-> =c и s->operator=с не прокатывают. переменые i и с типа int
Если вот бак то все работает
DynArray<char> codeTable(128);
for (int c = 0; c < 128; c++) codeTable[c] = c;
но нужны указатели
нужно выполнить на чистом С++ без STL
Цитата:
через указатель не могу воспользоваться оператором []
И не сможешь. Потому что любой указатель всегда использует системные операторы присвоения, сложения/вычитания и индексации.
Использовать переопределённые операторы можно только для объектов и ссылок на них. Или нужно выполнять обращение по адресу
(*Pointer) = Value; Здесь метод класса operator [] (int) применён не к указателю Pointer, а на указываемый объект.
Цитата:
DynArray<char> *s = new DynArray<char>(128);
Бред. Шаблон DynArray предназначен как раз для размещения в локальной области памяти, и выделение/освобождение кучи под значения динамического массива выделяет самостоятельно.
Вобщем чего то получилось
DynArray<char> *s = new DynArray<char>(128);
for (int c = 0; c < 128; c++) (*s)[c] =c;
for (int i = 97; i < 110; i++)
std::cout << (*s)ж
delete s;
s=NULL;
Но появился новый вопрос как теперь переопределить указатель *s на другой объект те еще раз
DynLIST<char> *s = new DynLIST <char>(128); например
Все разобрался