Kann ein struct
in C ++ geerbt werden?
Kann ein struct
in C ++ geerbt werden?
Antworten:
Ja, struct
ist genau so, class
außer dass die Standardzugänglichkeit public
für struct
(während es private
für ist class
) ist.
Ja. Die Vererbung ist standardmäßig öffentlich.
Syntax (Beispiel):
struct A { };
struct B : A { };
struct C : B { };
Anders als Alex und Evan bereits gesagt haben, möchte ich hinzufügen, dass eine C ++ - Struktur nicht wie eine C-Struktur ist.
In C ++ kann eine Struktur genau wie eine C ++ - Klasse Methoden, Vererbung usw. haben.
Natürlich. In C ++ sind Strukturen und Klassen nahezu identisch (Dinge wie die Standardeinstellung "öffentlich" statt "privat" gehören zu den kleinen Unterschieden).
In C ++ entspricht die Vererbung einer Struktur einer Klasse, mit Ausnahme der folgenden Unterschiede:
Beim Ableiten einer Struktur von einer Klasse / Struktur ist der Standardzugriffsspezifizierer für eine Basisklasse / Struktur öffentlich. Beim Ableiten einer Klasse ist der Standardzugriffsspezifizierer privat.
Beispielsweise schlägt Programm 1 mit einem Kompilierungsfehler fehl und Programm 2 funktioniert einwandfrei.
// Program 1
#include <stdio.h>
class Base {
public:
int x;
};
class Derived : Base { }; // Is equivalent to class Derived : private Base {}
int main()
{
Derived d;
d.x = 20; // Compiler error because inheritance is private
getchar();
return 0;
}
// Program 2
#include <stdio.h>
struct Base {
public:
int x;
};
struct Derived : Base { }; // Is equivalent to struct Derived : public Base {}
int main()
{
Derived d;
d.x = 20; // Works fine because inheritance is public
getchar();
return 0;
}