Diferença entre estrutura e classe

Autor: Laura McKinney
Data De Criação: 1 Abril 2021
Data De Atualização: 5 Poderia 2024
Anonim
Diferença entre estrutura e classe - Tecnologia
Diferença entre estrutura e classe - Tecnologia

Contente


Uma estrutura e uma classe fornecem uma maneira de criar um tipo de dados personalizado que pode ser usado ainda mais para criar instâncias. C ++ expande o papel da estrutura para criar uma classe. Tanto a estrutura quanto a classe são semelhantes em todos os aspectos, exceto uma diferença que, por padrão, a estrutura tem todos os seus membros como "públicos" e a classe por padrão tem todos os seus membros como "privados". Vamos estudar a diferença entre estrutura e classe usando o gráfico de comparação.

  1. Gráfico de comparação
  2. Definição
  3. Principais diferenças
  4. Semelhanças
  5. Conclusão

Gráfico de comparação

Base para ComparaçãoEstruturaClasse
Basic Se o especificador de acesso não for declarado, por padrão, todos os membros serão públicos.Se o especificador de acesso não for declarado, por padrão, todos os membros serão privados.
Declaração struct nome_da_estrutura {
tipo struct_element 1;
tipo struct_element 2;
tipo struct_element 3;
.
.
.
};
classe class_name {
membro de dados;
função membro;
};
Instância A instância da estrutura é chamada variável de estrutura.A instância de uma classe é chamada de objeto.


Definição de Estrutura

Uma estrutura é uma coleção de variáveis ​​de tipos de dados diferentes, todas referenciadas por um nome. Uma declaração de estrutura forma um modelo usado para criar uma instância da estrutura. A estrutura é declarada da seguinte maneira.

struct sname {tipo struct_element1; tipo struct_element2; tipo struct_element3; . . . } variável1, variável2,. . .;

A palavra-chave 'struct' define para o compilador que uma estrutura está sendo declarada. O 'sname' representa o nome dado à estrutura. A declaração da estrutura é sempre encerrada por ponto e vírgula, pois é considerada uma declaração. Você pode declarar as instâncias da estrutura antes de sua finalização, conforme feito no código acima (variável1, variável2) ou pode declarar a instância da estrutura em main (), escrevendo o nome da instância precedido pelo nome da estrutura.


// exemplo. main () {sname S1, S2; }

Aqui S1 e S2 são as instâncias da estrutura. As instâncias da estrutura são chamadas de "variável de estrutura". O elemento declarado dentro do corpo da estrutura pode ser acessado através das variáveis ​​da estrutura através do operador dot (.).

// exemplo S1. struct_element1;

  • A matriz de estrutura também pode ser criada; para isso, primeiro é necessário declarar uma estrutura e, em seguida, declarar uma matriz desse tipo.

// amostra struct sname sarray;

A declaração acima cria uma matriz com o nome 'sarray' contendo dez variáveis ​​e cada variável é organizada conforme definido em 'sname'.

  • Você pode passar um membro da estrutura para uma função e uma estrutura inteira para uma função.
  • Como ponteiro inteiro, ponteiro de matriz, um ponteiro de estrutura também pode ser declarado colocando '*' na frente do nome das variáveis ​​da estrutura.

// estrutura da amostra sname * S1;

Nota:

Os elementos de 'estrutura' são armazenados em um local de memória contígua.

Definição de Classe

A classe no OOP define um novo tipo que contém membros de dados e função de membro, que são usados ​​para acessar os membros de dados da classe. As instâncias das classes são chamadas de "objetos", cada um com a mesma organização que uma classe. A classe é uma abstração lógica, enquanto que um objeto tem uma existência física. A classe é sintaticamente semelhante à estrutura. A classe pode ser declarada da seguinte forma.

classe class_name {membros de dados privados e funções de membro. tipo de acesso especificador data_membro; digite mem_funct (lista de parâmetros) {. . lista de objetos;

Aqui, a classe é uma palavra-chave que declara ao compilador que uma classe foi declarada. A principal característica do OOP é a ocultação de dados, que é realizada fornecendo três especificadores de acesso que são "públicos", "privados", "protegidos". Se você não especificar nenhum especificador de acesso na classe ao declarar membros de dados ou funções de membro, por padrão, todos serão considerados privados. O especificador de acesso público permite que funções, ou dados sejam acessados ​​por outras partes do seu programa. Os membros privados da classe só podem ser acessados ​​por um membro dessa classe. O especificador de acesso protegido é aplicado durante a herança. Depois de declarar o especificador de acesso, ele não poderá ser alterado em todo o programa.

Os objetos nada mais são que a instância das classes. Os membros da classe são acessados ​​pelo objeto da mesma classe usando um operador de ponto (.).

//object.mem_funct (argumentos);

  • O objeto também pode ser passado como argumento para uma função.
  • O ponteiro para um objeto também pode ser criado.
  1. A principal diferença entre estruturas e classes é que, por padrão, todos os membros da estrutura são públicos, enquanto, por padrão, todos os membros da classe são privados.

Semelhanças:

  • No C ++, a estrutura e a classe são sintaticamente equivalentes.
  • Tanto a estrutura quanto a classe podem declarar alguns de seus membros privados.
  • O nome de uma estrutura ou classe pode ser usado como um tipo independente.
  • A estrutura e uma classe suportam o mecanismo de herança.

Conclusão:

A estrutura em C tinha algumas das limitações, pois a estrutura não permite ocultar dados, o tipo de dados 'struct' não pôde ser tratado como tipos internos, as estruturas não suportam herança. A estrutura em C ++ superou essas limitações. No C ++, as classes são a versão expandida da estrutura. O programador acha fácil usar a classe para armazenar dados e funcionar ambos e estruturar apenas para armazenar dados.