A maioria dos programadores sabem que um programa de computador contém nada mais do que dados e instruções para manipulação de dados . O seu objectivo , como um programador , é para representar dados na estrutura mais leve e eficiente possível . Ambas as "classes" e "estruturas" permitem que você para representar diferentes tipos de dados. Muitas línguas possuem ambas as classes e estruturas , incluindo C + + , C #, Java e Visual Basic. ( Algumas línguas referem-se a uma estrutura como uma " estrutura "). Você pode instanciar ambas as classes e estruturas de maneira convencional e acessar os membros de ambos usando a notação de ponto -ponto, mas as diferenças entre os dois tipos de dados superam essas poucas semelhanças. Finalidade
Classes formam a base da maioria das linguagens orientadas a objetos modernos e permitem a manipulação interminável. Quando você usa uma classe para representar seus dados, você tem todo o poder de uma linguagem de programação orientada a objetos à sua disposição. Faça uma aula de seu tipo de dados padrão e usá-lo quando você não tem certeza de que tipo de valor funciona melhor. Use uma estrutura , em contrapartida, apenas quando você precisar manipular um número definido de valores de tipo não- referência como uma unidade. Os programadores costumam usar estruturas para representar objetos geométricos , pontuações de jogos e outras informações relativamente simples.
Subjacente Tipo
Uma estrutura é um tipo de valor , enquanto que uma classe é uma referência digita. Tipos de valor representam números e texto , e só existem na pilha. Isso significa que quando você copia uma estrutura , você cria um item inteiramente novo na memória. Modificações para o novo objeto não afetam o objeto original. Tipos de referência , pelo contrário, existem tanto na pilha e da pilha. Quando você copia uma classe, você está realmente só copiar o endereço de referência para um local de memória na pilha. Então, quando você modificar uma cópia de um objeto, você também modificar todas as cópias na memória.
Destruidores
Dependendo do idioma que você está usando , você muitas vezes podem usar destruidores com objetos de classe . Em C + + , bem como na programação ADO.Net , destruidores permitir que você verifique se o processador destrói memória intensivo objetos assim que eles não são mais necessários . No entanto, muitas linguagens de programação , como C # , não permitem que você use destruidores com uma estrutura. Em vez disso, o coletor de lixo objeto dispõe de estruturas automaticamente.
Herança
Como tipos de referência, as classes podem herdar de outras classes. Isto significa que você pode criar uma classe de " menino " que herda todos os objetos e propriedades de uma classe "pessoa" . Por sua vez , a classe pessoa pode herdar os membros da classe "criatura" . Estruturas , pelo contrário, não pode herdar de outras estruturas. Conseqüentemente, eles são inerentemente selado.