públicoGetSaveRequired() é usado em uma classe para gerenciar todo este zoológico de estratégias
com este padrão eu escrevo somente o métodoNextStepStrategy - somente nele muda para TC, todo o resto é o mesmo, e portanto na classe baseCStrategy eu recolho todos os métodos e todos os campos - eles não são muito
ZS: com minhas costas eu sinto que não aceito meu código, mas ele definitivamente funcionará e não criará duplicatas da variávelf_save_required;
Raramente uso modificadores, uso-os mais intuitivamente, mas como sempre, quero a melhor solução.
Deixe-me tentar no código, é assim
públicoGetSaveRequired() é usado em uma classe para gerenciar todo este zoológico de estratégias
com este padrão eu escrevo somente o métodoNextStepStrategy - somente nele muda para TC, todo o resto é o mesmo, então na classe baseCStrategy eu recolho todos os métodos e todos os campos - eles não são muito
ZS: com minhas costas eu sinto que não aceito meu código, mas ele definitivamente funcionará e não criará duplicatas da variávelf_save_required;
Eu retiraria estas funções por completo.
Todas as funções que não alteram a estrutura, as tornam constantes.
Todas as funções não-constantes devem colocar bandeira de escrita.
Eu também adicionaria a função Save( int fileHandle ). Esta função deve escrever a estrutura e reiniciar a bandeira.
Você pode fazer uma função estática para obter o estado da bandeira.
if( CStrategy::GetSaveRequired() )
{
int fileHandle = FileOpen( ... );
for( int i = 0; i < 10; i++ )
{
strategies[i].Save( fileHandle );
}
FileClose( fileHandle );
}
Tornar constantes todas as funções que não alteram a estrutura.
Todas as funções não-constantes devem colocar bandeira de escrita.
Estou lhe dizendo, estou tendo problemas com os modificadores em geral.
SZY: enquanto isso o que está acontecendo em geral na web na discussão de programação - aqui estava um artigo sobre const on hobber no mês passado, o significado - esta const não é necessária, look assembler code não é diferente sem const - o compilador vai tirar tudo ((
Estou lhe dizendo, estou tendo problemas com os modificadores em geral.
Eu pesquisei, li, algo deu errado novamente...
class A {
private:
int x;
public:
void f(int v) const { Print("const"); }
void f(constint v) { x = v; Print("(const) x = v "); }
// void f(int v) { x = v; Print("x = v "); } // 'f' - function already defined and has body
};
A a;
//+------------------------------------------------------------------+voidOnStart()
{
int y = 1;
constint z = 2;
a.f(3);
a.f(y);
a.f(z);
}
//+------------------------------------------------------------------+
2019.09.13 21:10:54.316 tst (EURUSD,H1) x = v
2019.09.13 21:10:54.316 tst (EURUSD,H1) x = v
2019.09.13 21:10:54.316 tst (EURUSD,H1) x = v
espera-se que sejaimpresso("const") pelo menos uma vez;
Procurei no Google, li, algo deu errado novamente...
2019.09.13 21:10:54.316 tst (EURUSD,H1) x = v
2019.09.13 21:10:54.316 tst (EURUSD,H1) x = v
2019.09.13 21:10:54.316 tst (EURUSD,H1) x = v
espera-se que sejaimpresso("const") pelo menos uma vez;
class A {
private:
int x;
public:
void f(int v) const { Print("const"); }
void f(constint v) { x = v; Print("(const) x = v "); }
// void f(int v) { x = v; Print("x = v "); } // 'f' - function already defined and has body
};
A a;
const A b;
//+------------------------------------------------------------------+voidOnStart()
{
int y = 1;
constint z = 2;
a.f(3);
a.f(y);
a.f(z);
b.f(3);
b.f(y);
b.f(z);
}
Vladimir Simakov: Isto é uma sobrecarga para uma classe constante.
Hmmm... certo, eu passei quase meia hora lendo tanto o centro como os fóruns, mas não consegui pegar o jeito.
Obrigado! Agora eu tenho-o
Ainda existe a suspeita de tal exemplo:
class A {
private:
int x;
public:
void f(int v) const { Print("const"); }
constvoid f(int v) { x = v; Print("(const) x = v "); }
};
A a;
const A b;
//+------------------------------------------------------------------+voidOnStart()
{
int y = 1;
constint z = 2;
a.f(3);
a.f(y);
a.f(z);
b.f(3);
b.f(y);
b.f(z);
}
2019.09.13 22:04:34.295 tst (EURUSD,H1)(const) x = v
2019.09.13 22:04:34.295 tst (EURUSD,H1)(const) x = v
2019.09.13 22:04:34.295 tst (EURUSD,H1)(const) x = v
2019.09.13 22:04:34.295 tst (EURUSD,H1) const
2019.09.13 22:04:34.295 tst (EURUSD,H1) const
2019.09.13 22:04:34.295 tst (EURUSD,H1) const
deu os mesmos valores, mas a questão é bem diferente? - Então você precisa novamente da ajuda do salão.
No momento, estou sentado em uma palestra sobre o OOP. Talvez eu compartilhe algo útil com você )). Eu posso baixar a palestra atual. Até agora, é claro, as coisas triviais.
Nikolai Semko: Neste momento estou assistindo a uma palestra sobre o OOP. Talvez eu compartilhe o que vou aprender :)) Eu posso baixar a palestra atual. Até agora, é claro, as coisas triviais.
Bem, sua palestra é muito provavelmente em algaravia, enquanto aqui você mal pode aprender nada em russo, você já deu a terceira volta pela Internet... a situação geral é sombria como aqui no fórum, verdadeiros programadores - não mais que 10 pessoas em recursos, o resto são nerds
Ok, a situação geral foi esclarecida com const, eu trabalhei com o resto dos modificadores, então eu tenho muita teoria ... Eu preciso aplicá-lo, mas me sinto como um estudante ))))
Bem, sua palestra é muito provavelmente em algaravia, enquanto aqui você mal pode aprender nada em russo, você já deu a terceira volta pela Internet... a situação geral é semelhante àquela aqui no fórum, não há mais de 10 programadores reais e os demais são nerds
Ok, a situação geral foi resolvida com const, eu trabalhei com o resto dos modificadores, então já tive teoria suficiente... Eu me sinto como um estudante )))).
Sim, eu também tenho uma situação semelhante. Aprender não é difícil, é mais difícil de se reciclar, quebrar velhos hábitos. Eu ainda não consigo dar pontapés em muitos maus hábitos de programação de procedimentos.
Eu gostaria de um exemplo, estou lhe dizendo, não sou nada bom com modificadores.
SZY: além disso, em geral, o horror que está acontecendo na web na discussão de programação - aqui estava um artigo sobre const on hobber no mês passado, o significado - sim, esta const não é necessária, look assembler code não difere que sem const - o compilador irá remover tudo (((
Você pode simplesmente esquecer as constantes e estáticas por enquanto. Nas interfaces também.
E quando tudo estiver pronto, então olhe e marque algo como uma estática e algo como uma constante. E você pode esquecer completamente as interfaces.
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.
Tudo isso é compreensível. Não está claro porqueSetSaveRequired() eGetSaveRequired() não são estáticos, mas escrevem para uma variável estática.
Não entendo, por isso pedi ajuda. Raramente uso modificadores, mais intuitivos, mas sempre quero a melhor solução.
Deixe-me tentar no código, é assim
públicoGetSaveRequired() é usado em uma classe para gerenciar todo este zoológico de estratégias
com este padrão eu escrevo somente o métodoNextStepStrategy - somente nele muda para TC, todo o resto é o mesmo, e portanto na classe base CStrategy eu recolho todos os métodos e todos os campos - eles não são muito
ZS: com minhas costas eu sinto que não aceito meu código, mas ele definitivamente funcionará e não criará duplicatas da variávelf_save_required;
Raramente uso modificadores, uso-os mais intuitivamente, mas como sempre, quero a melhor solução.
Deixe-me tentar no código, é assim
públicoGetSaveRequired() é usado em uma classe para gerenciar todo este zoológico de estratégias
com este padrão eu escrevo somente o métodoNextStepStrategy - somente nele muda para TC, todo o resto é o mesmo, então na classe base CStrategy eu recolho todos os métodos e todos os campos - eles não são muito
ZS: com minhas costas eu sinto que não aceito meu código, mas ele definitivamente funcionará e não criará duplicatas da variávelf_save_required;
Eu retiraria estas funções por completo.
Todas as funções que não alteram a estrutura, as tornam constantes.
Todas as funções não-constantes devem colocar bandeira de escrita.
Eu também adicionaria a função Save( int fileHandle ). Esta função deve escrever a estrutura e reiniciar a bandeira.
Você pode fazer uma função estática para obter o estado da bandeira.
Eu retiraria estas funções por completo.
Tornar constantes todas as funções que não alteram a estrutura.
Todas as funções não-constantes devem colocar bandeira de escrita.
Estou lhe dizendo, estou tendo problemas com os modificadores em geral.
SZY: enquanto isso o que está acontecendo em geral na web na discussão de programação - aqui estava um artigo sobre const on hobber no mês passado, o significado - esta const não é necessária, look assembler code não é diferente sem const - o compilador vai tirar tudo ((
Estou lhe dizendo, estou tendo problemas com os modificadores em geral.
Eu pesquisei, li, algo deu errado novamente...
2019.09.13 21:10:54.316 tst (EURUSD,H1) x = v
2019.09.13 21:10:54.316 tst (EURUSD,H1) x = v
2019.09.13 21:10:54.316 tst (EURUSD,H1) x = v
Procurei no Google, li, algo deu errado novamente...
2019.09.13 21:10:54.316 tst (EURUSD,H1) x = v
2019.09.13 21:10:54.316 tst (EURUSD,H1) x = v
2019.09.13 21:10:54.316 tst (EURUSD,H1) x = v
Isto é uma sobrecarga para uma classe constante.
Hmmm... certo, eu passei quase meia hora lendo tanto o centro como os fóruns, mas não consegui pegar o jeito.
Obrigado! Agora eu tenho-o
Ainda existe a suspeita de tal exemplo:
2019.09.13 22:04:34.295 tst (EURUSD,H1) (const) x = v
2019.09.13 22:04:34.295 tst (EURUSD,H1) (const) x = v
2019.09.13 22:04:34.295 tst (EURUSD,H1) (const) x = v
2019.09.13 22:04:34.295 tst (EURUSD,H1) const
2019.09.13 22:04:34.295 tst (EURUSD,H1) const
2019.09.13 22:04:34.295 tst (EURUSD,H1) const
Eu posso baixar a palestra atual. Até agora, é claro, as coisas triviais.
Neste momento estou assistindo a uma palestra sobre o OOP. Talvez eu compartilhe o que vou aprender :))
Eu posso baixar a palestra atual. Até agora, é claro, as coisas triviais.
Bem, sua palestra é muito provavelmente em algaravia, enquanto aqui você mal pode aprender nada em russo, você já deu a terceira volta pela Internet... a situação geral é sombria como aqui no fórum, verdadeiros programadores - não mais que 10 pessoas em recursos, o resto são nerds
Ok, a situação geral foi esclarecida com const, eu trabalhei com o resto dos modificadores, então eu tenho muita teoria ... Eu preciso aplicá-lo, mas me sinto como um estudante ))))
Bem, sua palestra é muito provavelmente em algaravia, enquanto aqui você mal pode aprender nada em russo, você já deu a terceira volta pela Internet... a situação geral é semelhante àquela aqui no fórum, não há mais de 10 programadores reais e os demais são nerds
Ok, a situação geral foi resolvida com const, eu trabalhei com o resto dos modificadores, então já tive teoria suficiente... Eu me sinto como um estudante )))).
Sim, eu também tenho uma situação semelhante. Aprender não é difícil, é mais difícil de se reciclar, quebrar velhos hábitos. Eu ainda não consigo dar pontapés em muitos maus hábitos de programação de procedimentos.
Eu gostaria de um exemplo, estou lhe dizendo, não sou nada bom com modificadores.
SZY: além disso, em geral, o horror que está acontecendo na web na discussão de programação - aqui estava um artigo sobre const on hobber no mês passado, o significado - sim, esta const não é necessária, look assembler code não difere que sem const - o compilador irá remover tudo (((
Você pode simplesmente esquecer as constantes e estáticas por enquanto. Nas interfaces também.
E quando tudo estiver pronto, então olhe e marque algo como uma estática e algo como uma constante. E você pode esquecer completamente as interfaces.