Kann eine struct
in C++ vererbt werden?Struct Vererbung in C++
Antwort
Ja, struct
ist genau wie class
außer der Standard Zugänglichkeit public
für struct
ist (während es private
für class
ist).
Natürlich. In C++ sind Strukturen und Klassen fast identisch (zu den kleinen Unterschieden gehören Dinge wie das Veröffentlichen von öffentlichen statt privaten).
Ja. Die Vererbung ist standardmäßig öffentlich.
Syntax (Beispiel):
struct A { };
struct B : A { };
struct C : B { };
Andere als das, was Alex und Evan haben bereits gesagt, möchte ich hinzufügen, dass eine C++ struct nicht eine C-Struktur ist wie.
In C++ kann eine Struktur Methoden, Vererbung usw. genau wie eine C++ - Klasse haben.
eine C++ - Struktur kann wie eine C-Struktur sein. Wenn es ist, nannte es einen POD - Plain Old Datatype. Dies ist ein wichtiger Unterschied, da beispielsweise nur POD-Strukturen Teil von Gewerkschaften sein können. – camh
Aber PODs können Methoden haben, also sind sie nicht "wie" C-Strukturen in dem Sinne, worüber corgshing spricht. –
In C++, eine Vererbung der Struktur ist das gleiche wie eine Klasse mit Ausnahme der folgenden Unterschiede:
Wenn eine Struktur aus einer Klasse/Struktur abzuleiten, die Standard-Zugriffs-Bezeichner für eine Basis Klasse/Struktur ist öffentlich. Und beim Ableiten einer Klasse ist der Standardzugriffsspezifizierer privat.
Zum Beispiel schlägt Programm 1 mit einem Kompilierungsfehler und Programm 2 funktioniert gut.
// 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;
}
- 1. struct und Klasse und Vererbung (C++)
- 2. C# Serialisieren C++ struct Erbe
- 3. Typecasting und Vererbung in C++
- 4. Convert C++ struct in C#
- 5. Duplicate Struct in C++
- 6. Extern struct in C
- 7. Größe struct in C
- 8. C++ struct
- 9. Java Vererbung vs. C# Vererbung
- 10. Matrix in Struct in C
- 11. generische Vererbung in C#?
- 12. Mehrfache Vererbung in C#
- 13. Verschachtelte Vererbung in C++
- 14. Interfaces Vererbung in C#
- 15. Vererbung in C++
- 16. C++ - Vererbung
- 17. C# Vererbung
- 18. Standard Struct Initialisierung in C++
- 19. ein C++ struct in Cython
- 20. Casting struct Zeiger in C
- 21. Zeiger auf struct in C
- 22. XML zu C struct und C struct zu XML
- 23. Verwenden C Struct in Objective C
- 24. Marshal C++ struct Array in C#
- 25. typedef struct in C Vs C++
- 26. C++ struct Speicherzuordnung
- 27. C Struct Definition Standard
- 28. Unterschied zwischen 'struct' und 'typedef struct' in C++?
- 29. Lua und C-struct
- 30. C struct Problem
Dies sollte die akzeptierte Antwort sein. – QuantumKarl