Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка создания указателя при проектировании класа 
V
    Опции темы
Нитонисе
Дата 28.11.2009, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 917
Регистрация: 5.11.2009

Репутация: 2
Всего: 2



В приватной области класса создаю указатель на TList:
Код

TList *DFList;
Однако при компиляции выскакивает ошибка Type name expected и курсор становится после символа *.
Так указатель объявлять нельзя?

Может подскажете альтернативное решение или просто более рациональное. Мне в моем классе нужно в качестве его данных иметь список значений типа float, при создании экземпляра класса количество значеий float в списке не известно и в ходе работы программы может меняться. Потому я создаю указатель на TList. Если бы количество этих значений было заранее известно, я так понимаю, можно было бы применить простой массив (что было бы мне намного удобнее), но так как размер заранее не известен, то от него приходится отказаться.
Контейнеры STL не подойдут, потому что не умею с ними работать  smile

Добавлено через 3 минуты и 51 секунду
Ой, тут же нашел решение, пока создавал тему)) Нужно было вначале добавить #include <vcl.h>, а то программа просто не знала что такое TList. 
Однако если у кого-то есть идеи как можно иначе решить мою задачу по наличию удобного списка значений float в проектируемом классе, буду благодарен. Хотелось бы прикрутить как нибудь массив. Может это все же возможно?
PM MAIL   Вверх
shklowsky
Дата 28.11.2009, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 21.7.2009

Репутация: 5
Всего: 6



DynamicArray
PM MAIL   Вверх
Нитонисе
Дата 28.11.2009, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 917
Регистрация: 5.11.2009

Репутация: 2
Всего: 2



Цитата(shklowsky @  28.11.2009,  21:48 Найти цитируемый пост)
DynamicArray

А подробнее?
PM MAIL   Вверх
Alca
Дата 28.11.2009, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 25
Всего: 50



Цитата

Type name expected 

а случаем хидера никакие подключать не надо?

Добавлено через 1 минуту и 52 секунды
Цитата

Контейнеры STL не подойдут, потому что не умею с ними работать 

http://www.cplusplus.com/reference/stl/list/

Добавлено через 8 минут и 39 секунд
Цитата

Код

#include <Classes.hpp>


подключен?


--------------------
PM WWW ICQ Skype Jabber   Вверх
shklowsky
Дата 28.11.2009, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 21.7.2009

Репутация: 5
Всего: 6



Цитата(Нитонисе @  28.11.2009,  22:05 Найти цитируемый пост)
А подробнее? 

DynamicArray<float>DFarray;

--------------//-----------------------------

DFarray.set_length(3);
DFarray[0]=0.0f;
DFarray[1]=0.1f;


PM MAIL   Вверх
Нитонисе
Дата 28.11.2009, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 917
Регистрация: 5.11.2009

Репутация: 2
Всего: 2



Цитата(Alca @  28.11.2009,  22:20 Найти цитируемый пост)
а случаем хидера никакие подключать не надо?

Да, надо было. Я уже в первом сообщении и отметил, что нашел ошибку) Нужно было подключить vcl.h. 
А Classes.hpp для чего?

P.S. Литература по STL у меня есть, но ее надо изучать) Какой-то там синтаксис идет непривычный, итераторы эти... да еще и особенности всякие есть у контейнеров, типа таких что к произвольному элементу массива не докопаться, разве что с помощью итераторов последовательно перебрать все... я бы хотел вобщем обойтись без них.
PM MAIL   Вверх
Alca
Дата 29.11.2009, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 25
Всего: 50



Цитата

А Classes.hpp для чего?

Там объявлен TList


--------------------
PM WWW ICQ Skype Jabber   Вверх
shklowsky
Дата 29.11.2009, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 21.7.2009

Репутация: 5
Всего: 6



класс TList  вовсе не аналог std::list.
он предназначен для хранения указателей.
 
PM MAIL   Вверх
Нитонисе
Дата 29.11.2009, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 917
Регистрация: 5.11.2009

Репутация: 2
Всего: 2



Цитата(shklowsky @  29.11.2009,  16:34 Найти цитируемый пост)
класс TList  вовсе не аналог std::list.он предназначен для хранения указателей.

Да, это я вкурсе. Вообщем после размышлений решил отказаться от TList, уж очень неудобно пользоваться и выбрал контейнер STL vector. На поверку он оказался довольно простым. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0459 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.