Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > [CODE GEAR 2007]Не распознаёт динамический масив


Автор: player_inside 23.12.2011, 04:01
Имеется собственный параметризованный класс вектора:

Код


H- файл

template<class T>
class TMatrix;

template<class T>
class TVector {
public:
    T* array;
    long length;

              ............

};

CPP - файл
//Конструктор
template<class T>
TVector<T>::TVector() {
    length = 1;
    array = (T*)calloc(length,sizeof(T));
}


+ у него имеется куча методов, для общего понимания проблемы.

Потом, пишучи в некоторых местах программы (в методе другого класса, в обработчике события,...) обьявление переменной:
Код

TVector<long double> NextEventsTimes;

компилятор ошибок не выдаёт, но в вотче данная переменная не просматривается - показываются пустые скобки  {    }. И собственно при обращении к нему уже и выдаёт ошибку.
При чём снижение размера элементов с long double до просто double, float или int решает эту проблему: чем меньше памяти занимает элемент, тем больше вероятность, что проблема "исчезнет".
Я так понимаю, что проблема где-то в памяти чтоли...
Может кто-то сталкивался, или имеются мысли по тому, как это решить?
Использую CODE GEAR 2007.

Проблема решена:
Была в том, что класс ТВектор не был полностью объявлен что-ли...проблема было решена подключением к проблемному СПП его хедера, до директивы #pragma hdrstop, а уже именно в хедере проблемного файла, подключается хедер файла с класом ТВектора.
Собственно это была ошибка:
http://docwiki.embarcadero.com/RADStudio/XE2/en/E2315_'Member'_is_not_a_member_of_'class',_because_the_type_is_not_yet_defined_(C%2B%2B)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)