Para dizer de forma simples. Em um método constante, é impossível alterar os valores das variáveis declaradas na mesma classe em que o método constante está localizado (ou declarado em seu pai). É assim?
Dmitry Fedoseev: Você é aquele que não entende o que está escrevendo Pode mudar a classe de outra pessoa de qualquer tipo e do mesmo tipo que ela mesma.
Talvez você devesse ter cuidado com o que está escrevendo afinal de contas. Como um método pode mudar uma classe? Talvez um objeto de classe?
E a questão estava na declaração:
Um método constante não pode mudar seus membros de classe.
Alexey deu um exemplo de que isso pode mudar, então eu não acho que a afirmação esteja correta, eu queria ouvir o comentário de Vasiliy.
Talvez você devesse ter cuidado com o que está escrevendo afinal de contas. Como um método pode mudar uma classe? Talvez um objeto de classe?
E a questão estava na declaração:
Alexey deu um exemplo de que pode mudar, então eu acho que a afirmação está errada, eu queria ouvir o comentário de Vasily.
Que tal você ler mais atenciosamente? -"alterar os valores das variáveis declaradas"
Como você pode falar sobre a afirmação de Alexey? Ele não apenas o afirmou, ele o confirmou de verdade, deu um exemplo, você pode jogá-lo em um editor e ver quando ele compila e quando não o faz.
Para dizer de forma simples. Em um método constante, é impossível alterar os valores das variáveis declaradas na mesma classe em que o método constante está localizado (ou declarado em seu pai). É assim?
Não. Você sabe que cada objeto de uma classe tem seu próprio conjunto de variáveis declaradas nesta classe, certo? E um método constante não pode mudar apenas o objeto (ou seja, o conjunto) a partir do qual foi chamado.
Alexey Kozitsyn: Não. Você sabe que cada objeto de uma classe tem seu próprio conjunto de variáveis declaradas nessa classe, certo? E um método constante não pode mudar apenas o objeto (ou seja, conjunto) do qual ele foi chamado.
O que a chamada tem a ver com isso? O que importa é a localização do método e das variáveis. Se o método e as variáveis estão localizados na mesma classe, não podem ser alterados. Se a classe for passada por referência como parâmetro, você pode.
Dmitry Fedoseev: O que a chamada tem a ver com isso? O que importa é a localização do método e das variáveis. Se o método e as variáveis estiverem localizados na mesma classe, não será possível mudar. Se a classe for passada por referência como parâmetro, você pode.
O desafio aqui é que se o objeto1 da classe A chama um método constante da classe A, então esse método não pode mudar esse objeto1 (ou seja, o objeto1 que o chamou). Se, entretanto, o objeto1 for passado por referência ao mesmo método constante, mas chamado do objeto2 da classe A, então o objeto1 pode ser modificado. O objeto2, por sua vez, não pode.
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.
Não é seu próprio, mas um totalmente estrangeiro com o mesmo tipo.
O que não é seu? Que o tipo é o mesmo?
Você está dizendo que um método constante não pode mudar a classe de outra pessoa?
E quando você está respondendo, por favor seja mais específico, eu não entendi o que você está tentando dizer.
O que não é seu? Que o tipo é o mesmo?
Você está dizendo que um método constante não pode mudar a classe de outra pessoa?
E ao responder, por favor, seja mais explícito, eu não entendi o que você quer dizer.
Para dizer de forma simples. Em um método constante, é impossível alterar os valores das variáveis declaradas na mesma classe em que o método constante está localizado (ou declarado em seu pai). É assim?
Você é aquele que não entende o que está escrevendo Pode mudar a classe de outra pessoa de qualquer tipo e do mesmo tipo que ela mesma.
Talvez você devesse ter cuidado com o que está escrevendo afinal de contas. Como um método pode mudar uma classe? Talvez um objeto de classe?
E a questão estava na declaração:
Um método constante não pode mudar seus membros de classe.
Alexey deu um exemplo de que isso pode mudar, então eu não acho que a afirmação esteja correta, eu queria ouvir o comentário de Vasiliy.
Talvez você devesse ter cuidado com o que está escrevendo afinal de contas. Como um método pode mudar uma classe? Talvez um objeto de classe?
E a questão estava na declaração:
Alexey deu um exemplo de que pode mudar, então eu acho que a afirmação está errada, eu queria ouvir o comentário de Vasily.
Que tal você ler mais atenciosamente? -"alterar os valores das variáveis declaradas"
Como você pode falar sobre a afirmação de Alexey? Ele não apenas o afirmou, ele o confirmou de verdade, deu um exemplo, você pode jogá-lo em um editor e ver quando ele compila e quando não o faz.
Para dizer de forma simples. Em um método constante, é impossível alterar os valores das variáveis declaradas na mesma classe em que o método constante está localizado (ou declarado em seu pai). É assim?
Talvez você devesse ter cuidado com o que está escrevendo afinal de contas. Como um método pode mudar uma classe? Talvez um objeto de classe?
..
Assim:
Não. Você sabe que cada objeto de uma classe tem seu próprio conjunto de variáveis declaradas nessa classe, certo? E um método constante não pode mudar apenas o objeto (ou seja, conjunto) do qual ele foi chamado.
O que a chamada tem a ver com isso? O que importa é a localização do método e das variáveis. Se o método e as variáveis estiverem localizados na mesma classe, não será possível mudar. Se a classe for passada por referência como parâmetro, você pode.