Como resultado, dentro deste método o nome tipográfico define correctamente o tipo passado, por exemplo, como int, mas já dentro do nome tipográfico do construtor B é igual a string.
O resultado do nome datilografar é sempre do tipo string, por outras palavras, o nome datilografar pode ser representado convencionalmente como uma função
A100: o resultado do nome datilografia é sempre do tipo string, por outras palavras
Não é isso que quero dizer. nome datilografado devolve um fio contendo o nome do tipo. Dentro de um método de classe modelo, a corda com o tipo é "int", e dentro do construtor chamado a partir daí, a corda contém "string".
Stanislav Korotky: Não é isso que quero dizer. nome datilografado devolve uma corda com o nome do tipo. Dentro do método da classe modelo, a corda com o tipo é "int", e dentro do construtor chamado a partir daí, a corda contém "string".
class A { public:
template<typename T>
A( T ) { Print( typename( T )); }
};
class B { public:
template<typename T>
void f( T t ) { A a( t ); } //вызываем A::A(...)
};
voidOnStart()
{
B b;
int i = 0;
b.f( i );
}
Rapazes, isto é um bug do mercado ou é completamente normal?
Ainda não tentei, mas não deve funcionar se estiver ligado ao hardware e não ao sistema operativo. É como tirar o disco rígido e colocá-lo numa placa mãe diferente com um vídeo diferente. Irá começar imediatamente a procurar novos condutores.
Uma chamada para uma função virtual numa instância de uma classe derivada resulta numa chamada para essa função a partir da classe base, não da classe derivada.
Uma chamada para uma função virtual numa instância de uma classe derivada resulta numa chamada para essa função a partir da classe base, não da classe derivada.
Este é sempre o caso do construtor. Porquê? -> google C++ (adicionar a palavra construtor à cadeia de consulta)
A100: Fazem sempre em construtor. Porquê? -> google C++ (adicionar a palavra construtor à cadeia de consulta)
Obrigado, não sabia) Seria bom adicioná-lo à MQL5 Reference, sabe, onde são mencionadas funções virtuais e construtores. Não é assim em todas as línguas.
A100:
Tem razão. Curto e claro, sem quaisquer palavras desnecessárias. Afixei um código de trabalho.
Como resultado, dentro deste método o nome tipográfico define correctamente o tipo passado, por exemplo, como int, mas já dentro do nome tipográfico do construtor B é igual a string.
o resultado do nome datilografia é sempre do tipo string, por outras palavras
Não é isso que quero dizer. nome datilografado devolve uma corda com o nome do tipo. Dentro do método da classe modelo, a corda com o tipo é "int", e dentro do construtor chamado a partir daí, a corda contém "string".
O compilador não reporta um erro se #endif estiver em falta
De preferência, deve, caso contrário, ser difícil encontrar errosResultado: int.
Rapazes, isto é um bug do mercado ou é completamente normal?
Ainda não tentei, mas não deve funcionar se estiver ligado ao hardware e não ao sistema operativo. É como tirar o disco rígido e colocá-lo numa placa mãe diferente com um vídeo diferente. Irá começar imediatamente a procurar novos condutores.
Ou será que estou a interpretar mal a máquina virtual?
Uma chamada para uma função virtual numa instância de uma classe derivada resulta numa chamada para essa função a partir da classe base, não da classe derivada.
Uma chamada para uma função virtual numa instância de uma classe derivada resulta numa chamada para essa função a partir da classe base, não da classe derivada.
Fazem sempre em construtor. Porquê? -> google C++ (adicionar a palavra construtor à cadeia de consulta)
Obrigado, não sabia) Seria bom adicioná-lo à MQL5 Reference, sabe, onde são mencionadas funções virtuais e construtores. Não é assim em todas as línguas.