Resolvido com auxilio do amigo LanMM! @Arelian Monteiro Maia
//+------------------------------------------------------------------+ //| test.mq5 | //| Copyright 2022, Márcio Andrade | //| https://www.marcioandrade.com.br | //+------------------------------------------------------------------+ //--- version "1.00" #property copyright "Copyright 2022, Márcio Andrade." #property link "https://www.marcioandrade.com.br" #property version "1.00" //+------------------------------------------------------------------+ //| Class | //+------------------------------------------------------------------+ class CTest { public: string name; int number; CTest(void); ~CTest(void); void Clone(CTest &ref_pointer){this = ref_pointer;}; }; //+------------------------------------------------------------------+ //| Construtor | //+------------------------------------------------------------------+ CTest::CTest() { } //+------------------------------------------------------------------+ //| Destrutor | //+------------------------------------------------------------------+ CTest::~CTest() { } CTest *objects[]; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { ArrayResize(objects,1,0); objects[0] = new CTest; objects[0].name = "Object_1"; objects[0].number = 1; //--- create timer EventSetMillisecondTimer(1); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- destroy timer EventKillTimer(); } //+------------------------------------------------------------------+ //| Timer function | //+------------------------------------------------------------------+ void OnTimer() { //--- int size = ArraySize(objects); //--- if(size < 10){ Print("Creating: " + IntegerToString(size)); ArrayResize(objects,size + 1,0); objects[size] = new CTest(); objects[size].Clone(objects[size - 1]); objects[size].number ++; objects[size].name = "Object_" + IntegerToString(objects[size].number); Print("Created: " + IntegerToString(size + 1)); Print(""); }else{ for(int i = 0; i < size;i++){ Print("Object: " + IntegerToString(i)); Print("---"); Print("Expected number: " + objects[i].name); Print("Real Number: " + IntegerToString(objects[i].number)); Print("---"); } for(int i=ArraySize(objects) - 1;i>=0;i--){ if(CheckPointer(objects[i]) != POINTER_INVALID) delete objects[i]; } ExpertRemove(); } } //+------------------------------------------------------------------+
Obrigado pela oportunidade de ajudar meu amigo.
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Como fazer para clonar os dados de um objeto de uma classe para um novo objeto do mesmo tipo de classe?
Nesse código na linha: objects[size] = new CTest();
Estou criando um novo objeto mas gostaria de clonar os dados do objeto anterior.
Como clonar?