kiq005 / TrucoTerminal

Implementação de um jogo de truco para ser rodado via terminal, a partir de uma simulação de Orientação a Objetos em C
GNU General Public License v3.0
0 stars 1 forks source link

Update 22-07-17 #2

Open kiq005 opened 7 years ago

kiq005 commented 7 years ago

Ainda não foi resolvido:

O escopo público e privado estão funcionando para controle de acesso a funções, ainda falta implementar o protected.

citado na atualização 22-07-17.

kiq005 commented 7 years ago

A verificação de escopos foram corrigidas na atualização 13-08-17(2), o que já prepara bem a implementação correta dos escopos. Porém, do modo que está programado, é possível acessar métodos privados de fora de uma classe, pois o objeto da classe é passado em call e definido como escopo em __realize_call__. O trabalho sobre uma variável local definida em main (pode-se utilizar __attribute__((constructor)) para trabalhar sobre uma variável definida) para que tenhamos o escopo "externo", e assim limitar o acesso a funções privadas. Implementando a funcionalidade em funções, será fácil fazer o mesmo para variáveis, uma vez que utiliza-se apenas o método __get_attribute_index__ que pode retornar um número negativo caso tente acessar uma variável protegida ou privada fora do escopo desejado. É importante lembrar que tanto a macro call quanto get podem ser chamadas aninhadas, o que pode atrapalhar no manuseio.