Il C++ è nato proprio come estensione del C a cui sono state aggiunte le classi, per ottenere un linguaggio che consentisse la programmazione ad oggetti, che, al momento, è considerata "preferibile".
Una classe è un insieme di campi(attributi) e metodi di cui è possibile istanziare uno o + oggetti, quindi una struct non può assolutamente essere considerata una classe in quanto costituisce solo un record, cioè un insieme di attributi!