Вопрос новичка: Как динамически создавать и обращаться к объектам класса?

 
Здравствуйте, подскажите пожалуйста, осваиваю классы, возник такой вопрос:
Как динамически создавать объекты класса и в дальнейшем c ними работать?

Пример, что хочу, синтаксис неверный, чисто как демонстрация вопроса:

// Создаю простейший класс для демонстрации вопроса
class myClass {
 public:
   int somethingInMyClass;
};

//
int OnInit() {
   int objectsCount = 25;                    // Сколько хочу создать объектов класса, для примера задал 25

   string objectNames[];                     // Массив, где буду хранить все имена объектов класса
   ArrayResize(objectNames, objectsCount);   // Изменяю размер массива с именами, чтобы его размер соответствовал количеству объектов моего класса

   // Далее пытаюсь динамически создать объекты класса и сохранить их имена (Это и есть первый вопрос, можно ли их как-то динамически создавать)
   for(object_index = 0; object_index < objectsCount; object_index++) {
      string objectName = (string)object_index + "_Object";    // Для каждого объекта генерирую имя, например "3_Object"
      myClass objectName;                                      // Создаю объект класса с динамически созданным именем
      objectNames[object_index] = objectName;                  // Записываю себе имя класса в массив
   }

   // Далее пытаюсь обратиться к динамически созданным объектам (Это и есть второй вопрос, как к динамически созданным объектам обращаться)
   for(object_index = 0; object_index < objectsCount; object_index++) {
      string objectName = objectNames[object_index];           // Выписываю имя объекта, с которым буду работать
      objectName.somethingInMyClass = 1;                       // Пытаюсь произвести какое-то взаимодействие с объектом
   }

   return(INIT_SUCCEEDED);
}

Благодарю за ответы. Понимаю, вопрос глупейший, не закидывайте помидорами 😅

 
yar.forex:
Здравствуйте, подскажите пожалуйста, осваиваю классы, возник такой вопрос:
Как динамически создавать объекты класса и в дальнейшем c ними работать?

Пример, что хочу, синтаксис неверный, чисто как демонстрация вопроса:

Благодарю за ответы. Понимаю, вопрос глупейший, не закидывайте помидорами 😅

myClass *objectName = new myClass();

После использования нужно удалить:

delete objectName;

Там, насколько понимаю, еще и оператор "=" нужно перегружать в классе)


В первой ссылке книжечка: там можно базовую информацию найти по этому поводу:
https://www.google.com/search?client=firefox-b-d&q=%D1%81%2B%2B+%D0%B7%D0%B0+21+%D0%B4%D0%B5%D0%BD%D1%8C

 
Yevhenii Levchenko #:

После использования нужно удалить:

Там, насколько понимаю, еще и оператор "=" нужно перегружать в классе)


В первой ссылке книжечка: там можно базовую информацию найти по этому поводу:
https://www.google.com/search?client=firefox-b-d&q=%D1%81%2B%2B+%D0%B7%D0%B0+21+%D0%B4%D0%B5%D0%BD%D1%8C

не нужно.

 
yar.forex:
Здравствуйте, подскажите пожалуйста, осваиваю классы, возник такой вопрос:
Как динамически создавать объекты класса и в дальнейшем c ними работать?

Пример, что хочу, синтаксис неверный, чисто как демонстрация вопроса:

Благодарю за ответы. Понимаю, вопрос глупейший, не закидывайте помидорами 😅

В ООП вообще не разбираюсь, но чисто интуитивно, что то у вас не так.

Если рассуждать по аналогии, допустим у вас есть два вида красок , синяя (string) и зелёная (myClass), и есть забор (objectName),  который нужно покрасить какой то, ТОЛЬКО одной краской.

Так вот как мне кажется, вы красите забор синей краской и пытаетесь доказать компилятору, что она зелёная.


Понимаю, ответ глупейший, не закидывайте помидорами 😅

 
Спасибо за ответы

Я просто смотрю курс по генетическим алгоритмам на Python, беру идею из курса и пытаюсь воссоздать упражнения в MQL;

Там в курсе по Python такая строка:
def individualCreator():
   return Individual([random.randint(0, 1) for i in range(ONE_MAX_LENGTH)]);   
Как я понял, этот код про функцию, которая создает новый объект, созданного ранее класса Individual
Пытался воссоздать подобную механику в MQL. Видимо я своим примером только больше всех запутал.

Может быть, смотря на пример из Python будет понятнее, что мне нужно сделать в MQL?


 
Maxim Kuznetsov #:

не нужно.

На вот это посмотрел и подумал, что нужно:

   string objectNames[];                     // Массив, где буду хранить все имена объектов класса
   ArrayResize(objectNames, objectsCount);   // Изменяю размер массива с именами, чтобы его размер соответствовал количеству объектов моего класса

   // Далее пытаюсь динамически создать объекты класса и сохранить их имена (Это и есть первый вопрос, можно ли их как-то динамически создавать)
   for(object_index = 0; object_index < objectsCount; object_index++) {
      string objectName = (string)object_index + "_Object";    // Для каждого объекта генерирую имя, например "3_Object"
      myClass objectName;                                      // Создаю объект класса с динамически созданным именем
      objectNames[object_index] = objectName;                  // Записываю себе имя класса в массив
   }
 
Yevhenii Levchenko #:
На вот это посмотрел и подумал, что нужно:

понимаю, с лёту..

но вы же сами предложили использовать указатели - для них этого не надо. (не критика : просто пояснение для ТС и читателей)

PS/ это кстати о том что невредно сначала (до MQL) быть немного в курсе про С/C++, программирование вообще и разницу между ссылками и указателями. Конечно скорее не в эту тему,просто дискутируя про "обучение MQL"