Definindo Tipos em C++ para Sofrer Menos

Imagine que você está desenvolvendo um programa para uma empresa qualquer, em um país cuja moeda não tenha centavos. Então para tudo a que se refere a dinheiro você lasca um int.

int preco;
int calculaTotal();
int obterImposto(int precoBruto);

Passa o tempo, o seu programa fica pronto, e ele é tão bom que você passa meses sem nem olhar para o seu código fonte. Aí é eleito um presente maluco que resolve fazer uma arruaça com o sistema financeiro do país. Muda o nome da moeda, muda o câmbio, e, mais importante para você, ela passa a ter centavos.

Lindo, não? Todos os clientes passam a querer uma atualização. Com certeza os lucros serão os maiores de todos os tempos para sua firma. Mas aí vem o grande problema: com os centavos, o tipo int já não serve mais, e deve ser mudado para float.

Fazer esta mudança não é tão simples, porque você não pode simplesmente substituir todos os int do código fonte por float sem analisar para ver se aquele int se refere a um valor monetário ou não. Vai que ele é apenas um contador? Fazendo algo assim, sem pensar, poderia até mesmo trocar o int dentro de palavras, criando aberrações como, sei lá, #include "floaternational.h".

Pra piorar, o fato de você ter passado meses sem olhar para o código fonte fez você esquecer muito de sua própria lógica.

Sentiu a dor de cabeça?

Para evitar situações assim, a linguagem C++ oferece a facilidade de definirmos os nossos próprios tipos. No caso acima, poderíamos definir um tipo moeda e usar este novo nome ao invés de int. Daí, mais tarde, no caso de haver alguma alteração, bastaria mudar a definição do tipo que todo o programa acompanharia a mudança.

typedef int moeda;

moeda preco;
moeda calculaTotal();
moeda obterImposto(moeda precoBruto);

Numa mudança dessas, talvez fosse necessário fazer alterações em um ou outro método, mas seriam problemas de arredondamento e afins, nada relacionado com ficar vasculhando código, linha a linha, para saber onde fazer mudanças.

E se você ainda não está convencido a usar tipos definidos em seus sistemas, veja lá outro detalhe: além de evitar problemas como o descrito neste artigo, definir tipos ainda traz outra vantagem, que é tornar o código fonte mais legível.

Convencido? Então, a partir de agora, em seus sistemas, sejam eles grandes ou pequenos, declare todos os tipos juntos em um único arquivo .h e inclua-o em todos os outros onde for necessário.

O melhor email da série "Emails Maravilhosos que Eu Recebo"

Talvez este seja um dos melhores emails que eu já recebi nos últimos anos. Vê só, dias atrás eu li este texto aqui, que fala em como as pessoas não sabem ler. E, no caso, "não saber ler" não significa ser analfabeto, mas sim ser incapaz de interpretar o que lê, principalmente na hora de identificar metáforas e ironias. Quando li, concordei na hora, e depois dessa, então... e ainda veio sem email para eu responder. Olha só que pérola:

"Mario, tentei ligar para o 0800 para pedir o seu livro, mas você esqueceu de colocar o resto do número! Aguardo anciosa que atualize a página!"

Filha, que parte "clique aqui" você não conseguiu entender?

Elton John: Brasil + The Captain & The Kid + The Red Piano

Hoje eu ia colocar aqui um dos emails mais maravilhosos que recebi, mas devido ao aparecimento de duas notícias pra lá de interessantes, o email vai ficar pra depois. Vamos às notícias.

A primeira é que foi confirmada pelo jornal O Globo a vinda de Elton John ao Brasil em 20 de fevereiro janeiro de 2007. A data ainda não está confirmada no site oficial dele, mas não creio que o Globo iria dar um fora desses. De acordo com o jornal, o show a ser realizado em Copacabana será uma versão estendida do espetáculo The Red Piano, com generosas duas horas e quarenta minutos de duração. Isso significa que o set list que eu imaginei, e comentei aqui, será bem maior.

A segunda é que foram liberadas pelo site oficial novas informações sobre o novo cd que será lançado em setembro, chamado The Captain & The Kid, que é um álbum autobiográfico, que fará as vezes de continuação do Captain Fantastic and the Brown Dirt Cowboy. De cara, a capa, que traz, pela primeira vez, Elton John e Bernie Taupin. Eu simplesmente achei fodáximo o design dela, principalmente o "logo" que criaram para o disco e a colocação do nome do Elton. Simples e foda, muito foda. Pra ver é só clicar aqui.

Junto a isso, saiu também a lista das dez músicas que fazem parte do disco: Postcards From Richard Nixon, Just Like Noah's Ark, Wouldn't Have You Any Other Way (NYC), Tinderbox, ...And The House Fell Down, Blues Never Fade Away, The Bridge, I Must Have Lost It On the Wind, Old '67, The Captain and the Kid.

Se a impressão que as músicas vierem a me causar for a mesma que os nomes causaram, vou chutar que as minhas favoritas serão Blues Never Fade Away, I Must Have Lost It On the Wint e Old '67. Mas está na cara que os dois primeiros singles serão The Captain and the Kid, com certeza a carro chefe do disco, e Wouldn't Have You Any Other Way (NYC), que faz uma clara alusão à cidade de Nova York.

Aliás, se for realmente sobre Nova York, será a terceira música deles dedicada à cidade, vide Mona Lisas and Mad Hatters 1 e 2.

Nas próximas semanas as notícias vão pulular com mais intensidade, e com certeza pulularão por aqui também.

Tendo dito tudo isso, refaço então o meu set list dos sonhos para o show de fevereiro, tendo um início acachapante, reduzindo a marcha para as baladas e depois fechando com rock'n'roll para levar o povão ao delírio, num total de 26 músicas:

Funeral for a Friend / Love Lies Bleeding, Captain Fantastic and the Brown Dirt Cowboy, The Captain and the Kid, Don't Let the Sun Go Down on Me, Rocket Man, Wouldn't Have You Any Other Way (NYC), Believe, Circle of Life, Candle in the Wind, Electricity, Blues Never Fade Away, Your Song, Answer in the Sky, Bennie and the Jets, Are You Ready for Love, They Call Her the Cat, I Don't Wanna Go on with You Like That, Honky Cat, The Wasteland, Philadelphia Freedom, Grey Seal, I'm Still Standing, The Bitch is Back, Crocodile Rock, Pinball Wizard, Saturday Night's Alright for Fighting.

Emails Maravilhosos que Eu Recebo

Este aqui é um belo exemplar de concisão e economia de palavras:

"oi"

P.S.: Ou será que é spam de operadora de telefonia móvel?

Emails Maravilhosos que Eu Recebo

Este aqui veio do meu site do Elton John, e é mais um daqueles exemplos que ensinam que é preciso colocar um aviso no site dizendo que ele não tem ligação nenhuma com o cantor. Ou não, já que isso sempre rende bons emails:

"Olá Sr. Elton John. Gosto muito das suas músicas e principalmente do seu estilo. Acho que sou o deu fã número um do Brasil. Você é muito sensacional mesmo.

Fiquei sabendo que o senhor virá ao Rio de Janeiro ano que vém. Teria alguma chance de o senhor deixar eu conhecê-lo pessoalmente? Seria a realização de um sonho que eu sonho há muitos anos!

Eu não tenho email:, mas o senhor poderia botar um aviso na página inicial que eu visito sempre que meu primo deixa eu mexer no computador dele. Seria muito sensacional!!!"

Mais um da série "Emails Maravilhosos que Eu Recebo"

A quantidade de emails que eu tenho recebido, vindos do Sarcófago e do meu site do Elton John aumentou consideravelmente nas últimas semanas, não sei o motivo. De qualquer maneira, são tão bons que nem tenho que me dar ao trabalho de escrever nada para pôr no Sarcófago. Eles já rendem ótimas piadas prontas. Tenho quatro aqui na fila

Este aqui é de uma colega que leu a crônica "Assalto no Cartório" e acreditou:

"Ha... ha... ha... Muito engraçado... rir da desgraça alheia. Contei no meu dentista o que aconteceu. Até então, achando que era verdade e ninguém tinha ouvido falar sobre o assunto. Achei estranho porque em Cachoeiras é quase impossível uma notícia dessas não se espalhar... no dia seguinte entro novamente no seu blog e o que vejo? Uma piadinha sua dizendo que era só um conto... ainda não desmenti a história e estou até com receio de ver a cara do pessoal quando eu contar que cai como uma patinha... o pior é se algum deles te viu nesse meio tempo. Passei por mentirosa. Ou alucinada, sei lá... Se prepara que, quando eu o vir novamente, me certificarei que levarás um tiro de verdade..."

Trabalho em Cartório mas sou Escritor

E finamente chegamos ao grande dia! Já está disponível, via 0800, o download gratuito e sem custos do meu primeiro livro, que reúne mais de 30 textos que já passaram por aqui, incluindo ainda um texto inédito, que nunca tinha sido publicado.

Agradeço a todos aqueles que ajudaram e influenciaram toda esta caminhada, pois sem vocês este livro não seria possível.

Copiem, leiam, escrevam de volta, comentem, critiquem, elogiem e, claro, mostrem pra família e pros amigos!

A Loura do Pré-Vestibular

Lá pelos longínquos idos de 2000 eu fiz um cursinho de pré-vestibular aqui em Cachoeiras de Macacu. Entre os muitos alunos havia uma menina, cujo nome nem me lembro mais, e que chamarei então apenas de a Loura, que é como eu a chamava em sala. Estudar com ela rendia a todos nós momentos de puro riso. Momentos estes que resolvi compartilhar com vocês:

Certa vez, na aula de matemática, o professor explica:

- Vejam bem, nos exercícios de matemática existem algumas contas que sempre aparecem e, mesmo elas sendo contas de números grandes, difíceis de calcular de cabeça, por aparecerem sempre a gente acaba decorando os resultados. Então é importante vocês ficarem atentos a estas repetições para economizar tempo quando forem resolver as questões de um vestibular. Esta conta que temos aqui é um exemplo disso. Quanto é 1000 dividido por 8? É uma conta mais ou menos grande, mas eu, como já fiz muitos exercícios, e já encontrei com ela várias vezes, sei, sem fazer conta, que 1000 dividido por 8 é 125.

A Loura emenda de bate-pronto, naquele estilo típico de aluno que quer mostrar serviço:

- Ah, então quer dizer que todo número dividido por 125 dá 8?

Mais um da série "Emails Mavarilhosos que Eu Recebo"

Este veio do meu site do Elton John:

Olá, Elton Jonh, adoro suas músicas e hajo você um excelente músico. gostaria de tér sua coleção inteira de dvd ou cd. Meu endereço é ..."

Tirei o endereço pra ninguém inventar de mandar alguma coisa pro cara.