2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 С++ Массивы объектов.
Сообщение22.05.2012, 23:30 


27/12/11
40
Доброго времени суток!
Подскажите пожалуйста, есть объект, свойства которого в определённое время меняют значение.
Мне нужно записать в динамический массив несколько копий этого объекта.
Как это возможно сделать, чтобы потом обращаться к этим копиям по индексу?

 Профиль  
                  
 
 Re: С++ Массивы объектов.
Сообщение22.05.2012, 23:36 
Заслуженный участник


09/09/10
3729
"Для начала сформулируйте задачу и опишите проблему". Заводите массив, записываете в него копии вашего объекта. Потом можете получить к ним доступ, индексируя массив. В чем проблема-то?

 Профиль  
                  
 
 Re: С++ Массивы объектов.
Сообщение23.05.2012, 00:11 


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

 Профиль  
                  
 
 Re: С++ Массивы объектов.
Сообщение23.05.2012, 00:48 
Заслуженный участник


09/09/10
3729
Используется синтаксис 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 


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

 Профиль  
                  
 
 Re: С++ Массивы объектов.
Сообщение24.05.2012, 15:05 


27/12/11
40
Доброго времени, подскажите плиз, есть строка
"num = 3" Нужно переменной float типа присвоить 3 из данной строки
float a;
std::string str = "num = 3"
a = str[6] - не работает, а= 0 при выводе
понимаю, что нужно конвертировать, не подскажите, как?

 Профиль  
                  
 
 Re: С++ Массивы объектов.
Сообщение25.05.2012, 07:27 
Заслуженный участник


09/09/10
3729
char* end_ptr;
a = strtod(str.c_str()+5, &end_ptr);

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group