Agora, quais diferenças entre C e C++?
C++beijos
Lara, C++ é uma linguagem orientada a objeto (OO). A idéia da OO é principalmente criar uma abstração mais próxima do mundo real. Mas a OO também é estruturada. não vou usar a linguagem de programação para ficar mais didático
Em c
concedaAumentoSalario('Lara',10)
em uma oo
Funcionaria lara = new Funcionaria("lara");
lara.aumento(10);
entao, todos os comportamentos possiveis que podem ser feitos com a Lara enquanto funcionária vão estar na própria camada de abstração a que ela faz parte. Isto deixa o código mais claro e uma abstração mais próximo ao mundo real, conseguimos ver funcionários, pessoas, etc..
Note, que temos herança em uma OO
Então Funcionario - uma classe - pode herdar características de Pessoa uma outra classe
Pessoa pode ter um nome, idade, sexo,
Então, eu na minha modelagem cria funcionario apenas com salario, data de contratação, cargo, etc.. e herdo Pessoa, ganhando todos os outros atributos. E depois eu posso me refenciar a lara como uma Pessoa ou como uma Funcionaria, o que protege as informações também.
No final, os programadores fazem cagada com as duas, em OO as cagadas ficam mais cagadas ainda, principalmente em C++ com múltiplas heranças etc.. É um conceito com muito mais sucesso para os grandes provedores de software (microsoft, oracle, etc..) do que para o programador comum que tá fazendo a folha de pagamento
Quanto à descompilar dá sim, mas para mim a grande questão é a legibilidade do código. Já utilizei descompiladores especializados em linguagem específicas e realmente era de pouco proveito, como já foi dito.