Zalecane, 2024

Wybór Redakcji

Różnica między strukturą a klasą

Zarówno struktura, jak i klasa udostępnia sposób tworzenia dostosowanego typu danych, który można wykorzystać do tworzenia instancji. C ++ rozszerza rolę struktury, tworząc klasę. Zarówno struktura, jak i klasa, są pod każdym względem podobne, z wyjątkiem jednej różnicy, że struktura domyślnie ma wszystkich członków jako "publiczne", a klasa domyślnie ma wszystkich członków jako "prywatnych". Przeanalizujmy różnicę między strukturą a klasą za pomocą tabeli porównawczej.

Wykres porównania

Podstawa do porównaniaStrukturaKlasa
PodstawowyJeśli specyfikator dostępu nie jest zadeklarowany, domyślnie wszyscy członkowie są "publiczni".Jeśli specyfikator dostępu nie jest zadeklarowany, domyślnie wszyscy członkowie są "prywatni".
Deklaracjastruct structure_name {
wpisz struct_element 1;
wpisz struct_element 2;
wpisz struct_element 3;
.
.
.
};
class class_name {
członek danych;
funkcja członka;
};
InstancjaInstancja "struktury" nazywa się "zmienną struktury".Instancja "klasy" nazywa się "obiektem".

Definicja struktury

Struktura jest zbiorem zmiennych o różnych typach danych, z których wszystkie są przywoływane przez jedną nazwę. Deklaracja struktury tworzy szablon, który służy do utworzenia instancji struktury. Struktura jest zadeklarowana jako następująca.

 struct sname {typ struct_element1; wpisz struct_element2; wpisz struct_element3; . . . } zmienna1, zmienna2, . . .; 

Słowo kluczowe "struct" określa kompilator, że deklarowana jest struktura. "Sname" reprezentuje nazwę nadaną strukturze. Deklaracja struktury jest zawsze zakończona średnikiem, ponieważ jest traktowana jako instrukcja. Możesz zadeklarować instancje struktury przed jej zakończeniem jak w powyższym kodzie (zmienna1, zmienna2) lub możesz zadeklarować instancję struktury w main (), pisząc nazwę instancji poprzedzoną nazwą struktury.

 // przykład. main () {sname S1, S2; } 

Tutaj S1 i S2 są instancjami struktury. Instancje struktury są nazywane "zmienną struktury". Element deklarowany wewnątrz bryły struktury może być dostępny poprzez zmienne strukturalne za pomocą operatora kropki (.).

 // przykład S1. struct_element1; 
  • Można również utworzyć tablicę struktury, w tym celu najpierw zadeklaruj strukturę, a następnie zadeklaruj tablicę tego typu.
 // sample struct sname sarray [10]; 

Powyższe polecenie tworzy tablicę o nazwie "sarray" zawierającą dziesięć zmiennych, a każda zmienna jest zorganizowana zgodnie z definicją "sname".

  • Możesz przekazać element konstrukcyjny do funkcji i możesz przekazać całą strukturę do funkcji.
  • Podobnie jak, wskaźnik liczby całkowitej, wskaźnik tablicy, wskaźnik struktury można również zadeklarować, umieszczając "*" na początku nazwy zmiennych struktury.
 // sample struct sname * S1; 

Uwaga:

Elementy "struktury" są przechowywane w ciągłej lokalizacji pamięci.

Definicja klasy

Klasa w OOP definiuje nowy typ, który zawiera elementy danych i funkcję członka, które są używane do uzyskiwania dostępu do elementów danych klasy. Instancje klas są nazywane "obiektami", z których każdy ma tę samą organizację co klasa. Klasa jest logiczną abstrakcją, podczas gdy obiekt ma fizyczną egzystencję. Klasa jest syntaktycznie podobna do struktury. Klasę można zadeklarować jako następującą.

 class nazwa_klasy {prywatne elementy danych i funkcje członkowskie. access_specifier typ data_member; wpisz mem_funct (lista parametrów) {. . }} lista obiektów; 

Tutaj klasa jest słowem kluczowym, które deklaruje kompilatorowi, że klasa została zadeklarowana. Główną cechą OOP jest ukrywanie danych, które jest realizowane przez zapewnienie trzech specyfikacji dostępu, które są "publiczne", "prywatne", "chronione". Jeśli nie określisz żadnego specyfikatora dostępu w klasie podczas deklarowania elementów danych lub funkcji składowych, domyślnie wszystkie będą traktowane jako prywatne. Specyfikator publicznego dostępu umożliwia dostęp, funkcje lub dane do innych części programu. Prywatni członkowie klasy mogą być dostępni tylko przez członka tej klasy. Specyfikator chronionego dostępu jest stosowany podczas dziedziczenia. Po zadeklarowaniu specyfikatora dostępu nie można go zmienić w programie.

Obiekty są tylko instancją klas. Członkowie klasy są udostępniani przez obiekt tej samej klasy za pomocą operatora kropki (.).

 //object.mem_funct (argumenty); 
  • Obiekt może być również przekazywany jako argument do funkcji.
  • Wskaźnik do obiektu można również utworzyć.

Kluczowe różnice między strukturą a klasą

  1. Główna różnica między strukturami i klasami polega na tym, że domyślnie wszyscy członkowie struktury są publiczni, podczas gdy domyślnie wszyscy członkowie klasy są prywatni.

Podobieństwa:

  • W C ++ zarówno struktura, jak i klasa są równoważne pod względem składniowym.
  • Zarówno struktura, jak i klasa mogą zadeklarować część swoich członków jako prywatne.
  • Nazwa struktury lub klasy może być używana jako osobny typ.
  • Zarówno struktura, jak i klasa wspierają mechanizm dziedziczenia.

Wniosek:

Struktura w C miała pewne ograniczenia, ponieważ struktura nie pozwala na ukrywanie danych, typ danych "struct" nie może być traktowany jak wbudowane typy, struktury nie obsługują dziedziczenia. Struktura w C ++ pokonała te ograniczenia. W C ++ klasy są rozszerzoną wersją struktury. Programiści uważają, że łatwo jest używać klasy do przechowywania danych i funkcji zarówno i struktury tylko do przechowywania danych.

Top