Exemplo 2 é declaração e inicialização, exemplo 1 apenas declaração
Já mais claro poderia ter sido escrito sobre isso na ajuda. Declarei-o imediatamente porque tenho cálculos estáticos em classes e não preciso criar objeto através de um novo operador.
Diga-me, eu quero fazer uma coisa dessas, significa que quero declarar uma classe, depois declarar uma matriz e armazenar na matriz um ponteiro para a classe, é possível fazer ou não?
Diga-me, eu quero fazer tal coisa, então eu quero declarar uma classe e depois declarar uma matriz e armazenar na matriz um ponteiro para a classe, é possível fazer ou não?
repetidas vezes.... Uma classe é antes de tudo um tipo de dado, como int, duplo...
você quer um conjunto deste tipo de dados? - declarar um array, se o array for dinâmico, então redimensioná-lo, então inicializar TODOS os ELEMENTOS com os dados necessários - você precisa de apontadores, então inicializá-los com apontadores para uma classe, você precisa de instâncias de uma classe, então cada elemento do array não será um apontador, mas um objeto em si
essa é a essência do OOP, qualquer classe é, antes de tudo, um tipo de dado de usuário.... não sei o quanto dizer sobre isso, mas a metodologia é a mesma que com um tipo de dado regular, e o que você vai escrever dentro da classe é um assunto pessoal, mas a inicialização de uma nova instância sempre começará com um construtor, e que construtor existe - por padrão, com ou sem parâmetros - permite que você escolha como inicializar o objeto...... ugh, mas ainda assim ler um livro, não há como fazê-lo com perguntas aqui
Normalmente eles determinam as ordens superiores/inferiores por seus preços abertos, depois adicionam algum valor e obtêm um novo preço ao qual ou monitoram quando o preço quebra esta condição de nível e colocam uma nova ordem ou imediatamente colocam uma grade de ordens pendentes visando o número máximo de ordens e então rastreiam esta grade.
Agradeço seu interesse, mas me referia à grade pontilhada na tabela.
Você pode informar como os níveis horizontais são calculados para uma grade em mt4 e em mt5? Eles se deslocam quando eu percorro a tabela sem uma escala fixa e se deslocam emmt4 e mt5 um pouco diferente. Talvez alguém saiba como é calculado, assim você não precisa adivinhar com recuos, amarrações e assim por diante.
Obrigado por não passar por nós, mas não estou falando sobre isso, estou falando sobre a grade pontilhada na tabela.
Você pode me dizer como os níveis horizontais são calculados para a grade em mt4 e em mt5? Se a escala não for fixa, eles se deslocam quando eu percorro a tabela, e se deslocam emmt4 e em mt5 um pouco diferente. Talvez alguém saiba como é calculado, por isso não tenho que adivinhar com recuos e encadernações e coisas assim.
Ela apenas divide a janela em partes iguais, dependendo da resolução da tela.
Estou me dividindo verticalmente em 15 partes em MT4 e MT5
repetidas vezes.... Uma classe é antes de tudo um tipo de dado, como int, duplo...
Você quer um conjunto de dados desse tipo? - declare um array, se o array for dinâmico, então redimensione-o, então inicialize TODOS os ELEMENTOS com os dados necessários - você precisa de apontadores, então inicialize-os com apontadores para a classe, você precisa de instâncias de classe, então cada elemento do array não será um apontador, mas o próprio objeto
essa é a essência do OOP, qualquer classe é, antes de tudo, um tipo de dado de usuário.... não sei o quanto dizer sobre isso, mas a metodologia é a mesma que com um tipo de dado regular, e o que você vai escrever dentro da classe é uma questão pessoal, mas a inicialização de uma nova instância começará sempre com um construtor, e que construtor - por padrão, com parâmetros ou sem parâmetros - você pode escolher como inicializar o objeto...... ugh, mas ainda ler livros, não há como fazê-lo desta forma
Sim, eu percebi que isto não é possível porque quando você cria um array, o programa precisa especificar o tipo, e porque eu quero salvar um ponteiro de diferentes classes em um array, ele não funcionará porque o array não pode ser de tipo diferente ou diverso em mql, em s++ o fez, mas não com objetos tão complexos. Portanto, minha idéia não vai funcionar aqui.
Sim, eu percebi que isto não é possível porque quando você cria um array, o programa exige que você especifique o tipo, e porque eu quero salvar um ponteiro de diferentes classes em um array, isto não funcionará porque o array não pode ser de diferentes tipos ou variedades em mql, em C++ o fez, mas não com objetos tão complexos. Portanto, minha idéia não vai funcionar aqui.
Tudo é feito. Você herda seus objetos da classe base e cria um array com o tipo da classe base. E todos os objetos herdados podem estar na matriz.
Artyom Trishkin: Tudo é feito. Você herda seus objetos da classe base e cria um array com o tipo da classe base. E todos os objetos herdados podem estar na matriz.
E mostrar o exemplo mais simples e mais primitivo, onde há 2 classes e depois herança e como colocar referências a cada classe em um conjunto de 2 elementos (0 primeira classe 1 2)?
Makar, por que você está escrevendo algo que é claramente falso? Ao rolar o gráfico você pode mudar o offset das linhas horizontais da grade, e elas se deslocamum pouco diferente emmt4 e em mt5.
Eles não!
Eles só mudam quando há uma janela indicadora, em todos os outros casos eles não mudam.
E mostrar o exemplo mais simples e primitivo onde existem 2 classes herdadas e como colocar referências a cada classe em um conjunto de 2 elementos (0 primeira classe 1 2)?
class CBase{
protected:
int v;
public:
CBase(): v(0) { }
int getV() { return(v); }
virtualint calc() = 0;
};
class A:public CBase
{
public:
virtualint calc() {return(--v);} //декремент
};
class B:public CBase
{
public:
virtualint calc() {return(++v);} //инкремент
};
//+------------------------------------------------------------------+voidOnStart()
{
// 2 указателя которые инициализируем экземплярами обьектов A и B
CBase *arr_base[2];
arr_base[0] = new A;
arr_base[1] = new B;
// вызовем 10 раз метод calc() для каждого обьекта for(int j=ArraySize(arr_base)-1; j>=0; j--)
{
for(int i=0; i<10; i++)
{
arr_base[j].calc();
}
}
Print("A.v = ",arr_base[0].getV());
Print("B.v = ",arr_base[1].getV());
//удалим обьекты for(int j=ArraySize(arr_base)-1; j>=0; j--)
{
delete arr_base[j];
}
}
//+------------------------------------------------------------------+
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
alocação de memória será no exemplo 1 e no exemplo 2
Exemplo 2 é declaração e inicialização, exemplo 1 apenas declaração
Já mais claro poderia ter sido escrito sobre isso na ajuda. Declarei-o imediatamente porque tenho cálculos estáticos em classes e não preciso criar objeto através de um novo operador.
Diga-me, eu quero fazer uma coisa dessas, significa que quero declarar uma classe, depois declarar uma matriz e armazenar na matriz um ponteiro para a classe, é possível fazer ou não?
Diga-me, eu quero fazer tal coisa, então eu quero declarar uma classe e depois declarar uma matriz e armazenar na matriz um ponteiro para a classe, é possível fazer ou não?
repetidas vezes.... Uma classe é antes de tudo um tipo de dado, como int, duplo...
você quer um conjunto deste tipo de dados? - declarar um array, se o array for dinâmico, então redimensioná-lo, então inicializar TODOS os ELEMENTOS com os dados necessários - você precisa de apontadores, então inicializá-los com apontadores para uma classe, você precisa de instâncias de uma classe, então cada elemento do array não será um apontador, mas um objeto em si
essa é a essência do OOP, qualquer classe é, antes de tudo, um tipo de dado de usuário.... não sei o quanto dizer sobre isso, mas a metodologia é a mesma que com um tipo de dado regular, e o que você vai escrever dentro da classe é um assunto pessoal, mas a inicialização de uma nova instância sempre começará com um construtor, e que construtor existe - por padrão, com ou sem parâmetros - permite que você escolha como inicializar o objeto...... ugh, mas ainda assim ler um livro, não há como fazê-lo com perguntas aqui
Normalmente eles determinam as ordens superiores/inferiores por seus preços abertos, depois adicionam algum valor e obtêm um novo preço ao qual ou monitoram quando o preço quebra esta condição de nível e colocam uma nova ordem ou imediatamente colocam uma grade de ordens pendentes visando o número máximo de ordens e então rastreiam esta grade.
Agradeço seu interesse, mas me referia à grade pontilhada na tabela.
Você pode informar como os níveis horizontais são calculados para uma grade em mt4 e em mt5? Eles se deslocam quando eu percorro a tabela sem uma escala fixa e se deslocam emmt4 e mt5 um pouco diferente. Talvez alguém saiba como é calculado, assim você não precisa adivinhar com recuos, amarrações e assim por diante.
Obrigado por não passar por nós, mas não estou falando sobre isso, estou falando sobre a grade pontilhada na tabela.
Você pode me dizer como os níveis horizontais são calculados para a grade em mt4 e em mt5? Se a escala não for fixa, eles se deslocam quando eu percorro a tabela, e se deslocam emmt4 e em mt5 um pouco diferente. Talvez alguém saiba como é calculado, por isso não tenho que adivinhar com recuos e encadernações e coisas assim.
Ela apenas divide a janela em partes iguais, dependendo da resolução da tela.
Estou me dividindo verticalmente em 15 partes em MT4 e MT5
repetidas vezes.... Uma classe é antes de tudo um tipo de dado, como int, duplo...
Você quer um conjunto de dados desse tipo? - declare um array, se o array for dinâmico, então redimensione-o, então inicialize TODOS os ELEMENTOS com os dados necessários - você precisa de apontadores, então inicialize-os com apontadores para a classe, você precisa de instâncias de classe, então cada elemento do array não será um apontador, mas o próprio objeto
essa é a essência do OOP, qualquer classe é, antes de tudo, um tipo de dado de usuário.... não sei o quanto dizer sobre isso, mas a metodologia é a mesma que com um tipo de dado regular, e o que você vai escrever dentro da classe é uma questão pessoal, mas a inicialização de uma nova instância começará sempre com um construtor, e que construtor - por padrão, com parâmetros ou sem parâmetros - você pode escolher como inicializar o objeto...... ugh, mas ainda ler livros, não há como fazê-lo desta forma
Sim, eu percebi que isto não é possível porque quando você cria um array, o programa precisa especificar o tipo, e porque eu quero salvar um ponteiro de diferentes classes em um array, ele não funcionará porque o array não pode ser de tipo diferente ou diverso em mql, em s++ o fez, mas não com objetos tão complexos. Portanto, minha idéia não vai funcionar aqui.
Sim, eu percebi que isto não é possível porque quando você cria um array, o programa exige que você especifique o tipo, e porque eu quero salvar um ponteiro de diferentes classes em um array, isto não funcionará porque o array não pode ser de diferentes tipos ou variedades em mql, em C++ o fez, mas não com objetos tão complexos. Portanto, minha idéia não vai funcionar aqui.
Tudo é feito. Você herda seus objetos da classe base e cria um array com o tipo da classe base. E todos os objetos herdados podem estar na matriz.
E mostrar o exemplo mais simples e mais primitivo, onde há 2 classes e depois herança e como colocar referências a cada classe em um conjunto de 2 elementos (0 primeira classe 1 2)?
Makar, por que você está escrevendo algo que é claramente falso? Ao rolar o gráfico você pode mudar o offset das linhas horizontais da grade, e elas se deslocamum pouco diferente emmt4 e em mt5.
Eles não!
Eles só mudam quando há uma janela indicadora, em todos os outros casos eles não mudam.
E mostrar o exemplo mais simples e primitivo onde existem 2 classes herdadas e como colocar referências a cada classe em um conjunto de 2 elementos (0 primeira classe 1 2)?
2020.03.22 21:21:38.544 tst (EURUSD,H1) A.v = -10
2020.03.22 21:21:38.544 tst (EURUSD,H1) B.v = 10
2020.03.22 21:21:38.544 tst (EURUSD,H1) A.v = -10
2020.03.22 21:21:38.544 tst (EURUSD,H1) B.v = 10
Obrigado. E as funções devem ser virtuais simples não posso, eu mesmo já vou experimentar.