снова vector
От: ef1 Россия  
Дата: 04.07.05 08:55
Оценка:
VC7.1 такой вопрос (новичек) мне нужно в классе контрола CTreeCtrl (в диалоге) создать динамический массив из элементов (имя файла + динамический массив его свойств) хочу использовать векторы. Можете мне объяснить как объявить все это в *.h и потом использовать в *.cpp. После создания массива я его хочу отображать в CTree
Re: снова vector
От: _KAV Россия  
Дата: 04.07.05 09:31
Оценка:
Здравствуйте, ef1, Вы писали:

ef1> VC7.1 такой вопрос (новичек) мне нужно в классе контрола CTreeCtrl (в диалоге) создать динамический массив из элементов (имя файла + динамический массив его свойств) хочу использовать векторы. Можете мне объяснить как объявить все это в *.h и потом использовать в *.cpp. После создания массива я его хочу отображать в CTree


А в чем, собственно, проблема? h-файл тебе нужен здесь только для того, чтобы из других срр-шников можно было обращаться к этому. Чаще всего в h-файлах объявляются переменные как extern и прототипы функций. А вся реализация — в cpp. Объявляешь vector<int> или что тебе там надо, и вперед.
Я прихожу в бешенство от одной мысли о том, сколько бы я всего узнал, если бы не ходил в школу.
Re[2]: снова vector
От: ef1 Россия  
Дата: 04.07.05 09:53
Оценка:
Здравствуйте, _KAV, Вы писали:

_KA>А в чем, собственно, проблема? h-файл тебе нужен здесь только для того, чтобы из других срр-шников можно было обращаться к этому. Чаще всего в h-файлах объявляются переменные как extern и прототипы функций. А вся реализация — в cpp. Объявляешь vector<int> или что тебе там надо, и вперед.


Доступ из других классов к этому массиву мне нужен, т.к. буду заполнять массив оттуда. Элемент массива такой

//---
CString mFileName; //полный путь к файлу с именем
struct iParam
{
CString Name; //имя параметра
CString Unit; //размерность параметра
double Value; //значение параметра
};
//---

и мне нужно создать такой динамический массив (внутри которого еще динамический массив структур), не знаю как его объявить, и как к нему обращаться из других файлов, если время есть, пару строк?!
Re[3]: снова vector
От: _KAV Россия  
Дата: 04.07.05 15:52
Оценка:
Здравствуйте, ef1, Вы писали:

ef1>Доступ из других классов к этому массиву мне нужен, т.к. буду заполнять массив оттуда. Элемент массива такой


ef1>//---

ef1>CString mFileName; //полный путь к файлу с именем
ef1>struct iParam
ef1> {
ef1> CString Name; //имя параметра
ef1> CString Unit; //размерность параметра
ef1> double Value; //значение параметра
ef1> };
ef1>//---

ef1>и мне нужно создать такой динамический массив (внутри которого еще динамический массив структур), не знаю как его объявить, и как к нему обращаться из других файлов, если время есть, пару строк?!


Я что-то не очень понял, в чем вопрос . Давай проясним. Насколько я понял, массив выглядит так:

0 элемент:
имя файла ( mFileName )
параметры ( неограниченное количество структур iParam )
1 элемент:
— то же самое — (но параметров может быть другое количество)

Если так, то вот вариант:
struct TParameter
{
  CString name;
  CString unit;
  double value;
};

struct TElement
{
  CString FileName;  
  vector <TParameter> Params;
};

// сам массив всех файлов с параметрами
vector <TElement> Settings;

// а если тебе надо обращаться из других файлов, то в h-файле надо как extern объявить его:
extern vector <TElement> Settings;

// пример добавления параметра
TParameter par1;
par1.name = "par1";
...  // другие свойства (вообще, лучше сделать конструктор у TParameter)
TElement el1;
el1.FileName = "file";
el1.Params.push_back( par1 );
Settings.push_back( el1 );
Я прихожу в бешенство от одной мысли о том, сколько бы я всего узнал, если бы не ходил в школу.
Re[4]: снова vector
От: Аноним  
Дата: 05.07.05 03:40
Оценка:
спасибо все так, до этого немного писал на других языках и пока не совсем понимаю синтаксис C — исправлюсь
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.