2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 С++ Массивы объектов.
Сообщение22.05.2012, 23:30 
Доброго времени суток!
Подскажите пожалуйста, есть объект, свойства которого в определённое время меняют значение.
Мне нужно записать в динамический массив несколько копий этого объекта.
Как это возможно сделать, чтобы потом обращаться к этим копиям по индексу?

 
 
 
 Re: С++ Массивы объектов.
Сообщение22.05.2012, 23:36 
"Для начала сформулируйте задачу и опишите проблему". Заводите массив, записываете в него копии вашего объекта. Потом можете получить к ним доступ, индексируя массив. В чем проблема-то?

 
 
 
 Re: С++ Массивы объектов.
Сообщение23.05.2012, 00:11 
Я синтаксис спрашиваю :)
У меня есть класс, мне нужно экземпляр класса, используемый в моей программе "положить" в массив. Как в делфи, например, это сделать я знаю, в c++ просто не знаю синтаксиса. В поиске выдаёт ссылки на форумы, где выложен весь код целиком. Мне нужно только объявление динамического массива, присваивание i-того элемента массива и последующее его считывание. Я не прошу вас решить задачу, я прошу написать мне варианты определения массивов.
Заранее спасибо.

 
 
 
 Re: С++ Массивы объектов.
Сообщение23.05.2012, 00:48 
Используется синтаксис C++
#include <vector>

int main() {
  std::vector<YourClass> v(10);  // 10 элементов
  YourClass x;
  v[5] = x;
  cout << v[5] << endl;
}

Это все с локальными переменными. Если хотите работать в куче — new, указатели и ссылки в помощь:
Используется синтаксис C++
#include <vector>

int main() {
  std::vector<YourClass*> *v = new std::vector<YourClass*>(10);  // 10 элементов
  YourClass *x = new YourClass();
  v[5] = x;
  cout << *(v[5]) << endl; // я уже не помню, какой приоритет у операций
  delete v[5];
  delete v;
}

 
 
 
 Re: С++ Массивы объектов.
Сообщение23.05.2012, 12:45 
Всё спасибо, разобрался)
Всё проще гораздо. У класса есть свой конструктор, дочерних классов и изменять сам класс не пришлось:
Код:
PartEff *lstTraces[6];
- объявление моего массива с нужным мне классом(со ссылкой), пока статический массив, с динамическими потом разберусь )
Код:
lstTraces[i] = ...
- присваивание.
Всем спасибо, операторы понадобились стандартные.

 
 
 
 Re: С++ Массивы объектов.
Сообщение24.05.2012, 15:05 
Доброго времени, подскажите плиз, есть строка
"num = 3" Нужно переменной float типа присвоить 3 из данной строки
float a;
std::string str = "num = 3"
a = str[6] - не работает, а= 0 при выводе
понимаю, что нужно конвертировать, не подскажите, как?

 
 
 
 Re: С++ Массивы объектов.
Сообщение25.05.2012, 07:27 
char* end_ptr;
a = strtod(str.c_str()+5, &end_ptr);

 
 
 [ Сообщений: 7 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group