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

Autor: Laura McKinney
Data Utworzenia: 1 Kwiecień 2021
Data Aktualizacji: 4 Móc 2024
Anonim
Różnica między strukturą a klasą - Technologia
Różnica między strukturą a klasą - Technologia

Zawartość


Zarówno struktura, jak i klasa umożliwiają utworzenie niestandardowego typu danych, który można wykorzystać do tworzenia instancji. C ++ rozszerza rolę struktury w celu utworzenia klasy. Zarówno struktura, jak i klasa są podobne pod każdym względem, z tą różnicą, że struktura domyślnie ma wszystkich członków jako „publiczną”, a klasa domyślnie ma wszystkich członków jako „prywatną”. Przeanalizujmy różnicę między strukturą a klasą za pomocą tabeli porównawczej.

  1. Wykres porównania
  2. Definicja
  3. Kluczowe różnice
  4. Podobieństwa
  5. Wniosek

Wykres porównania

Podstawa do porównaniaStrukturaKlasa
Podstawowy Jeśli specyfikator dostępu nie zostanie zadeklarowany, domyślnie wszyscy członkowie są publiczni.Jeśli specyfikator dostępu nie zostanie zadeklarowany, domyślnie wszyscy członkowie są prywatni.
Deklaracja struct nazwa_ struktury
wpisz struct_element 1;
wpisz struct_element 2;
wpisz struct_element 3;
.
.
.
};
klasa nazwa_klasy {
członek danych;
funkcja członka;
};
Instancja Wystąpienie struktury nazywa się zmienną struktury.Wystąpienie klasy nazywane jest obiektem.


Definicja struktury

Struktura to zbiór zmiennych o różnych typach danych, z których wszystkie są powiązane jedną nazwą. Deklaracja struktury tworzy szablon, który służy do utworzenia wystąpienia struktury. Struktura jest zadeklarowana następująco.

struct sname {type struct_element1; wpisz struct_element2; wpisz struct_element3; . . . } zmienna 1, zmienna 2,. . .;

Słowo kluczowe „struct” określa w kompilatorze, że struktura jest deklarowana. „Sname” reprezentuje nazwę nadaną strukturze. Deklaracja struktury jest zawsze zakończona średnikiem, ponieważ jest uważana za instrukcję. Możesz zadeklarować instancje struktury przed jej zakończeniem, jak to zrobiono 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 nazywane są „zmienną struktury”. Do elementu zadeklarowanego wewnątrz bryły konstrukcji można uzyskać dostęp poprzez zmienne struktury za pomocą operatora kropki (.).


// przykład S1. struct_element1;

  • Można również utworzyć tablicę struktury, w tym celu należy najpierw zadeklarować strukturę, a następnie zadeklarować tablicę tego typu.

// sample struct sname sarray;

Powyższa instrukcja tworzy tablicę o nazwie „sarray” zawierającą dziesięć zmiennych, a każda zmienna jest zorganizowana zgodnie z definicją w „sname”.

  • Możesz przekazać element struktury do funkcji i możesz przekazać całą strukturę do funkcji.
  • Podobnie jak wskaźnik liczb całkowitych, wskaźnik tablicy, wskaźnik struktury można również zadeklarować, umieszczając „*” na początku nazwy zmiennych struktury.

// przykładowy struct sname * S1;

Uwaga:

Elementy „struktury” są przechowywane w ciągłym miejscu pamięci.

Definicja klasy

Klasa w OOP definiuje nowy typ, który zawiera elementy danych i funkcję elementu, które służą do uzyskiwania dostępu do elementów danych klasy. Instancje klas nazywane są „obiektami”, z których każdy ma taką samą organizację jak klasa. Klasa jest logiczną abstrakcją, podczas gdy obiekt istnieje fizycznie. Klasa jest syntaktycznie podobna do struktury. Klasę można zadeklarować następująco.

klasa nazwa_klasy {prywatni członkowie danych i funkcje składowe. access_specifier type 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 osiąga się poprzez zapewnienie trzech specyfikatorów 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 zostaną uznane za prywatne. Specyfikator publicznego dostępu pozwala na dostęp do funkcji lub danych przez inne części twojego programu. Dostęp do prywatnych członków klasy może uzyskać tylko członek tej klasy. Specyfikator dostępu chronionego jest stosowany podczas dziedziczenia. Po zadeklarowaniu specyfikatora dostępu nie można go zmienić w całym programie.

Obiekty są niczym innym jak instancją klas. Do członków klasy można uzyskać dostęp przez obiekt tej samej klasy za pomocą operatora kropki (.).

//object.mem_funct (argumenty);

  • Obiekt można również przekazać jako argument do funkcji.
  • Można również utworzyć wskaźnik do obiektu.
  1. Główną różnicą między strukturami i klasami jest to, ż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 składniowo.
  • Zarówno struktura, jak i klasa mogą zadeklarować niektórych członków jako prywatne.
  • Nazwa struktury lub klasy może być używana jako typ autonomiczny.
  • Zarówno struktura, jak i klasa wspierają mechanizm dziedziczenia.

Wniosek:

Struktura w C miała pewne ograniczenia, ponieważ struktura nie pozwala na ukrywanie danych, typu danych „struct” nie można traktować jak wbudowanych typów, struktury nie obsługują dziedziczenia. Struktura w C ++ pokonała te ograniczenia. W C ++ klasy są rozszerzoną wersją struktury. Programiście łatwo jest wykorzystać klasę do przechowywania danych i funkcji, a także struktury do przechowywania danych.