Aconteceu comigo, estava mexendo no código de um projeto que estava funcionando muito bem, obrigado. Só que misteriosamente, depois de ter mexido um monte, aparece um erro estranho e não sei o porquê que ocorreu. Como o projeto é em C++, devia ser problemas com ponteiros e essas coisas que dão dor de cabeça para qualquer programador. Enfim, precisei regredir o código para um estado anterior, só que Command+Z em tudo para achar quando começou o erro é pedir demais. Precisava dar um retrocesso total, para antes de eu começar a mexer.
Blog onde registro todas as minhas pesquisas e compartilhando as mesmas para quem esteja interessado.
sábado, 2 de março de 2013
sexta-feira, 1 de março de 2013
iOS: Resolução de telas
Hoje só uma anotação útil para qualquer desenvolvedor para iOS deve ter sempre por perto: as resolução das telas dos aparelhos. Hoje temos as seguintes resoluções:
quinta-feira, 28 de fevereiro de 2013
C++: Como declarar um atributo static
Não quero aprofundar nos conceitos de um método/atributo estático nesse momento, então hoje vou assumir que saibam o que é um método ou atributo estático (o que pode não ser verdade, uma vez que nunca aprendi direito na escola e nem na faculdade).
O motivo de estar fazendo esse tutorial é porque levei um bom tempo para poder entender o que estava acontecendo. Na maioria das linguagens de programação, basta por o modificador static na frente que já é suficiente, mais ou menos como no exemplo abaixo:
Arquivo: A.h
class A{
static int staticAtr;
public void metodo();
}
O motivo de estar fazendo esse tutorial é porque levei um bom tempo para poder entender o que estava acontecendo. Na maioria das linguagens de programação, basta por o modificador static na frente que já é suficiente, mais ou menos como no exemplo abaixo:
Arquivo: A.h
class A{
static int staticAtr;
public void metodo();
}
quarta-feira, 27 de fevereiro de 2013
C++: Entenda os modificadores de Acesso (Public, Protected e Private)
Isso não é só no C++, mas na maiorias das linguagens orientadas ao objeto, sempre nos deparamos com esses três modificadores de acesso: Public, Protected e Private. Eles estão praticamente sempre, nos métodos e nos atributos, mas poucas pessoas sabem o que realmente faz. (Ok, na verdade, poucas pessoas sabem usar as vantagens do Orientado ao Objeto, mas isso fica para outro dia)
Para entender melhor, vamos supor que temos três classes, dessa forma:
Para entender melhor, vamos supor que temos três classes, dessa forma:
domingo, 24 de fevereiro de 2013
C++: Erro de Redefinição de Classe
Estava eu, mexendo com heranças e tal e quando vou compilar o meu código, aparece esse erro: "Redefinition of 'ClasseX'". Achei estranho, porque não declarei duas vezes a classe, como a maioria da Internet que achei, patéticamente fizeram de fazer um definição de classe no arquivo h e outra no arquivo cpp.
No meu caso, o que ocorreu foi que ao incluir no meu código, uma classe derivada de ClasseX e outra classe também derivada de ClasseX, o compilador incluiu duas vezes a ClasseX e aí é que deu o erro de redefinição.
No meu caso, o que ocorreu foi que ao incluir no meu código, uma classe derivada de ClasseX e outra classe também derivada de ClasseX, o compilador incluiu duas vezes a ClasseX e aí é que deu o erro de redefinição.
sábado, 23 de fevereiro de 2013
C++: O que são métodos Virtuais?
Hoje estou fazendo um tutorial de programação de nível intermediário, que são os métodos virtuais. Estou fazendo isso, porque apesar de ser básico da linguagem (mas classifico como intermediário porque são poucas as instituições que explicam métodos virtuais), você não encontra praticamente NADA na internet que explique. Só coisas avançadas como métodos virtuais em heranças múltiplas e tal, mas o básico: NADA. Bem, vamos começar:
Métodos virtuais são métodos que são declaradas em uma classe base, mas serão implementadas nas classes que herdarão a classe base. Imaginemos a seguinte situação: nós vamos implementar uma classe chamada Animal. Todos os animais precisam comer, entretanto, o que eles comem depende de cada animal em particular. Por exemplo, uma Zebra comerá grama, enquanto um Leão comerá carne, mas todos os animais comem. Então, teríamos um diagrama de classe assim:
Métodos virtuais são métodos que são declaradas em uma classe base, mas serão implementadas nas classes que herdarão a classe base. Imaginemos a seguinte situação: nós vamos implementar uma classe chamada Animal. Todos os animais precisam comer, entretanto, o que eles comem depende de cada animal em particular. Por exemplo, uma Zebra comerá grama, enquanto um Leão comerá carne, mas todos os animais comem. Então, teríamos um diagrama de classe assim:
![]() |
| Todo animal precisa comer, entretanto, como eles comem variam de acordo com a espécie |
sexta-feira, 22 de fevereiro de 2013
Cocos2D-x: Como fazer Output na linha de comando
Não importa qual é a linguagem de programação, mas durante o desenvolvimento os comandos ESCREVA sempre facilita o trabalho para um teste de mesa. Com Cocos2D-x não é diferente, só que tem um pequeno problema: projetos para Android são geralmente projetos Java que utiliza código C++, assim como projetos para iOS são códigos Objective-C que utiliza código C++. Embora, mesmo para o XCode tenha uma interface amigável com C++, coisa que o Android não tem (ou acham NDK agradável?), não dá para usar um printf ou cout porque não aparece nada.
Assinar:
Postagens (Atom)

