Czym jest i czy ró?żni się definicja

0

Hey
[???] Czy ktoś zna odpowiedź na to pytanie:
Czym jest i czy różni się definicja:
struct ROsoba
{ char nazwisko [20];
....
}

od definicji:
class TOsoba
{private
char *nazwisko;
public
TOsoba (void)
{nazwisko = NULL;
~TOsoba (void);
void Wprowadz (char *s);
void Wyswietl ( );

0
  1. Pierwsze to struktura, a drugie klasa. Co za tym idzie dla klasy istniej np. VMT, masz możliwość określenia jaka część klasy jest widzialna, dodać funkcje do obsługi klasy itp.
  2. Masz tablicę 20-elementową w strukturze, a w klasie masz jedynie wskaźnik na tablicę.
0
  1. AFAIK klasa = struktura in c++, jedyna róznica to to, że klasa ma pola domyślnie private, a struktura public
0

Niezupełnie, w według definicji języka C++ struktura służy jako agregat danych czyli może zawierać w sobie tylko dane, żadnych funkcji. Klasa nie ma takich ograniczeń. Tyle tylko, że sprawa ta jest różnie traktowana przez rożne kompilatory ...

0

Niezupełnie, w według definicji języka C++ struktura służy jako agregat danych czyli może zawierać w sobie tylko dane, żadnych funkcji. Klasa nie ma takich ograniczeń. Tyle tylko, że sprawa ta jest różnie traktowana przez rożne kompilatory ...

Jest tak jak pisze Vogel . W strukturze wszystkie składowe są domyślnie publiczne . To , że można w strukturze zadeklarować funkcje jest właściwością języka C++ a nie danego kompilatora .
C++ Dla Każdego :

"Możesz zadeklarować strukturę dokładnie tak jak klasę ; możesz zastosować w niej te same zmienne i funkcje składowe . Gdy przestrzegasz jawnego deklarowania publicznych i prywatnych sekcji klasy , nie ma żadnej róznicy pomiędzy klasą a strukturą ."

0

To ja już wolę klasy z Pascala. Tam przynajmniej wiem, jakie mam korzyści z ich stosowania. Tutaj nic ponad wygodę nie zyskuję.

0

Ja mówiłem o formalnej definicji języka C++. Są takie kompilatory, które nie akceptują funkcji w strukturze. Zresztą, według mnie, dobrą praktyką jest używanie struktur tylko do danych. Dlatego właśnie wymyślono klasy w C++ żeby odróżnić się od struktur klasycznego C. Niech struktura pozostanie strukturą, a klasa - klasą :-)

0

W MSDN-ie napisano :

In C++, a structure is the same as a class except that its members are public by default.

Wiec na kazdym kompilatorze C++ powinna sie skompilowac struktura z metodami
bez zadnych bledow - bo taka jest specyfikacja jezyka - a tego kompilatory
musza sie trzymac :) (ofcoz dodaja tez swoje usprawnienia itp ale podstawy
musza wypelniac).

0

Zdarzyło mi się pisać na kompilatorze bodaj edukacyjnym. Stąd te moje
posty. Aczkolwiek dalej uważam, żeby zostawić struktury w spokoju jeśli chodzi o dane, i używać klas :-) Ale to moje zdanie

1 użytkowników online, w tym zalogowanych: 0, gości: 1