Ich betrachte die Implementierung einer API, die ich verwende.
Ich bemerkte, dass eine Struktur von einer Klasse erbt und machte eine Pause, um darüber nachzudenken ...
Erstens habe ich in dem C ++ - Handbuch, mit dem ich studiert habe, nicht gesehen, dass eine Struktur von einer anderen Struktur erben kann:
struct A {};
struct B : public A {};
Ich vermute, dass in einem solchen Fall Struktur B von allen Daten in Struktur A erbt. Können wir öffentliche / private Mitglieder in einer Struktur deklarieren?
Aber ich habe Folgendes bemerkt:
class A {};
struct B : public A {};
Aus meinem Online-C ++ - Handbuch:
Eine Klasse ist ein erweitertes Konzept einer Datenstruktur: Anstatt nur Daten zu speichern, kann sie sowohl Daten als auch Funktionen enthalten.
Ist die obige Vererbung auch dann gültig, wenn Klasse A einige Mitgliedsfunktionen hat? Was passiert mit den Funktionen, wenn eine Struktur sie erbt? Und was ist mit dem Gegenteil: eine Klasse, die von einer Struktur erbt?
Praktisch habe ich folgendes:
struct user_messages {
std::list<std::string> messages;
};
Und ich habe es immer so durchlaufen foreach message in user_messages.messages
.
Wenn ich meiner Struktur Elementfunktionen hinzufügen möchte, kann ich die Deklaration ändern und zu einer Klasse "heraufstufen", Funktionen hinzufügen und trotzdem wie zuvor über meine user_messages.messages iterieren?
Offensichtlich bin ich immer noch ein Neuling und mir ist immer noch unklar, wie Strukturen und Klassen miteinander interagieren, was der praktische Unterschied zwischen den beiden ist und welche Vererbungsregeln gelten ...