Desafio da Semana #10


DESAFIO DA SEMANA #10

Por: Roberto Alexis Farah

Olá pessoal!

Recentemente recebi de um estudante de faculdade um desafio interessante que foi usado em sala de aula.

Por curiosidade resolvi utilizá-lo em entrevistas e obtive um resultado curioso que colocarei ao postar a resposta semana que vem.

Vamos ao desafio…

CENÁRIO

Aqui coloco o código C# (pode ser replicado e ligeiramente modificado para VB.NET ou C++ com os mesmos resultados):

namespace Test

{

        class Program

        {

                public class A

                {

                        public int _a1;

                        public int _b1;

                       

                        public void DoSomething(){

                                                                                _a1 = 1;

                                                                                Console.WriteLine("X");

                                                                }

                }

               

                public class B : A

                {

                        public int _b1;

                       

                        public void DoSomething()

                        {

                                DoSomething(); // Chamada a classe pai.

                                _b1 = _a1;

                        }

                }

               

                static void Main(string[] args)

                {

                        B b = new B();

                       

                        b.DoSomething();

                }

        }

}

SINTOMA

Como parte do desafio, você deve descobrir o SINTOMA que ocorrerá ao se executar o código acima. Dessa vez não forneço o sintoma.

OBJETIVO

Identifique o SINTOMA, PROBLEMA e proponha uma SOLUÇÃO.

Nota: Você deveria resolver apenas analisando o código fonte sem executá-lo, do contrário o desafio se torna muito mais simples.

Nota 2: Não se preocupe, não tenho como saber se você executou o código ou resolveu apenas analisando a listagem acima. J