Diferència entre estructura i classe

Autora: Laura McKinney
Data De La Creació: 1 Abril 2021
Data D’Actualització: 4 Ser Possible 2024
Anonim
Diferència entre estructura i classe - Tecnologia
Diferència entre estructura i classe - Tecnologia

Content


Tant una estructura com una classe proporcionen una manera de crear un tipus de dades personalitzat que es pot utilitzar més per crear instàncies. C ++ amplia el paper de l'estructura per crear una classe. Tant l’estructura com la classe, són similars en tots els aspectes excepte una diferència que, per defecte, tots els membres són “públics” i la classe per defecte té tot el seu membre “privat”. Analitzem la diferència entre estructura i classe mitjançant el gràfic de comparació.

  1. Gràfic de comparació
  2. Definició
  3. Diferències claus
  4. Semblances
  5. Conclusió

Gràfic de comparació

Bases per a la comparacióEstructuraClasse
Bàsic Si no es declara l'especificador d'accés, per defecte tots els membres són públics.Si no es declara l’especificador d’accés, per defecte tots els membres són privats.
Declaració structure structure_name {
tipus struct_element 1;
tipus struct_element 2;
tipus struct_element 3;
.
.
.
};
class class_name {
membre de dades;
funció de membre;
};
Instància La instància de l'estructura s'anomena estructura variable.La instància d’una classe s’anomena objecte.


Definició d’estructura

Una estructura és una col·lecció de variables de tipus de dades diferents, totes referenciades per un sol nom. Una declaració d'estructura forma una plantilla que s'utilitza per crear una instància de l'estructura. L’estructura es declara així.

struct sname {tipus struct_element1; tipus struct_element2; tipus struct_element3; . . . } variable1, variable2,. . .;

La paraula clau "struct" defineix al compilador que s'està declarant una estructura. El nom de "sname" representa el nom donat a l'estructura. La declaració d'estructura sempre s'acaba amb un punt i coma, ja que es considera com una declaració. Podeu declarar les instàncies de l'estructura abans de la seva terminació tal com es fa al codi anterior (variable1, variable2) o podeu declarar la instància de l'estructura a main (), escrivint el nom de la instància precedit amb el nom de l'estructura.


// exemple. principal () {sname S1, S2; }

Aquí S1 i S2 són les instàncies de l'estructura. Les instàncies de l'estructura s'anomenen "variable d'estructura". Es pot accedir a l’element declarat dins del cos d’estructura mitjançant les variables d’estructura mitjançant l’ús de l’operador dot (.).

// exemple S1. struct_element1;

  • També es pot crear la matriu d'estructura, per a això, primer heu de declarar una estructura i, després, declarar una matriu d'aquest tipus.

// sample struct sname sarray;

La declaració anterior crea una matriu amb el nom "sarray" que conté deu variables i cada variable s'organitza tal com es defineix a "sname".

  • Podeu passar un membre d'estructura a una funció i podeu passar una estructura sencera a una funció.
  • Igual que, el punter enter, el punter de matriu, també es pot declarar un punter d'estructura posant "*" al front del nom de les variables d'estructura.

// mostra struct sname * S1;

Nota:

Els elements "estructura" es guarden en una ubicació contigua de la memòria.

Definició de classe

Class in OOP defineix un nou tipus que conté els membres de dades i la funció de membre, que s'utilitzen per accedir a les dades dels membres de la classe. Les instàncies de les classes s'anomenen "objectes" cadascun dels quals té la mateixa organització que una classe. La classe és una abstracció lògica, mentre que, un objecte té una existència física. La classe és sintàcticament similar a l'estructura. La classe es pot declarar de la manera següent.

class class_name {membres de dades privades i funcions de membres. access_specifier data type_member; escriviu mem_funct (llista de paràmetres) {. . }} llista d'objectes;

Aquí, la classe és una paraula clau que declara al compilador que una classe ha estat declarada. La característica principal d’OOP és l’amagatall de dades que s’aconsegueix proporcionant tres especificadors d’accés que són “públics”, “privats”, “protegits”. Si no especifiqueu cap especificador d'accés a la classe mentre es declaren membres de dades o funcions de membre, per defecte, tots es consideren privats. L’especificador d’accés públic permet, a altres funcions del programa, accedir a altres funcions o dades. Només hi poden accedir els membres privats de la classe. L'especificador d'accés protegit s'aplica durant l'herència. Un cop hàgiu declarat especificador d'accés, no es pot canviar durant tot el programa.

Els objectes no són més que la instància de les classes. L’objecte de la mateixa classe accedeix als membres de la classe mitjançant un operador de punt (.).

//object.mem_funct (arguments);

  • L'objecte també es pot passar com a argument a una funció.
  • També es pot crear el punter a un objecte.
  1. La diferència principal entre estructures i classes és que per defecte tots els membres de l'estructura són públics, mentre que, per defecte, tots els membres de la classe són privats.

Similituds:

  • En C ++ tant l'estructura com la classe són sintàcticament equivalents.
  • Tant l’estructura com la classe poden declarar alguns dels seus membres privats.
  • El nom d'una estructura o classe es pot utilitzar com a tipus autònom.
  • Tant l’estructura com la classe donen suport al mecanisme d’herència.

Conclusió:

L’estructura en C tenia algunes limitacions, ja que l’estructura no permet l’ocultació de dades, el tipus de dades “struct” no es pot tractar com a tipus integrats, les estructures no admeten l’herència. L'estructura en C ++ va superar aquestes limitacions. A C ++, les classes són la versió ampliada de l'estructura. Al programador és fàcil utilitzar la classe per contenir dades i funcionar totes dues i estructurar només per contenir dades.