Põhiline erinevus: C ++ on objektorienteeritud keel, mis keskendub peamiselt objektidele. C ++ klassi võib defineerida kui omavahel seotud muutujaid ja funktsioone, mis on kapseldatud ühte struktuuri. Klasside esinemist nimetatakse objektideks. C ++ struktuuri võib nimetada kasutaja määratletud andmeliigiks, millel on oma toimingud. Erinevalt C-keelest on mõlemad C ++-s üsna sarnased. Peamine erinevus, mis nende vahel esineb, on juurdepääsu muutmise osas; klassi liikmed on vaikimisi privaatsed, samas kui struktuuri liikmed on vaikimisi avalikud.

C ++ klass on vaid C-keeles kasutatava struktuuri laiendus. See on kasutaja määratud andmeliik. Tegelikult seob see andmed ja sellega seotud funktsioonid ühes üksuses. Struktuur ja klass C-keeles erineb palju, kuna struktuuril on piiratud klassi funktsionaalsus ja funktsioonid. Teisest küljest on C ++ struktuur ja klass üsna sarnased. Peamine erinevus on tingitud asjaolust, et vaikimisi on kõik klassi liikmed eraõiguslikud, kuid vaikimisi on kõik struktuuri liikmed avalikud.

Klassi ja struktuuri võrdlus C + +:
Klass | Struktuur | |
Määratlus | C ++ klassi võib defineerida kui omavahel seotud muutujaid ja funktsioone, mis on kapseldatud ühte struktuuri. | Struktuuri võib nimetada kasutaja määratletud andmetüübiks, millel on oma toimingud. |
Deklaratsiooni märksõna | Klass | Struktuur |
Vaikimisi juurdepääsu spetsifikatsioon | Eraldi | Avalik |
Näide | klassi myclass { privaatne: int andmed; avalik: myclass (int data_): andmed (andmed_) {} virtual void foo () = 0; virtuaalne ~ klass () {} }; | struct myclass { privaatne: int andmed; avalik: myclass (int data_): andmed (andmed_) {} virtual void foo () = 0; virtuaalne ~ klass () {} }; |
Eesmärk | Andmete võtmine ja edasine pärimine | Üldiselt andmete grupeerimine |
Tüüp | Viide | Väärtus |
Kasutamine | Üldiselt kasutatakse suurte andmemahtude puhul. | Üldiselt kasutatakse väiksemate andmemahtude puhul. |