¿se puede heredar un struct
en C++?herencia de la secuencia en C++
Respuesta
Sí, struct
es exactamente igual class
excepto la accesibilidad por defecto es de public
struct
(aunque es private
para class
).
Por supuesto. En C++, las estructuras y las clases son casi idénticas (cosas como el incumplimiento de público en lugar de privado se encuentran entre las pequeñas diferencias).
Sí. La herencia es pública por defecto.
Sintaxis (ejemplo):
struct A { };
struct B : A { };
struct C : B { };
Aparte de lo que Alex y Evan ya se han mencionado, me gustaría añadir que una estructura de C++ no es como una estructura C.
En C++, una estructura puede tener métodos, herencia, etc. al igual que una clase de C++.
una estructura C++ puede ser como una estructura C. Cuando lo es, se llama POD - Plain Old Datatype. Es una distinción importante, ya que, por ejemplo, solo las estructuras POD pueden formar parte de los sindicatos. – camh
Pero los POD pueden tener métodos, por lo que no son "similares" a las estructuras C en el sentido del que se está hablando de cgorshing. –
En C++, la herencia de una estructura es la misma que una clase, excepto las siguientes diferencias:
Al derivar una estructura de una clase/estructura, el valor por defecto el acceso especificador de una clase base/struct es público. Y al derivar una clase, el especificador de acceso predeterminado es privado.
Por ejemplo, el programa 1 falla con un error de compilación y el programa 2 funciona bien.
// 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. Prevenir la herencia de clases en C++
- 2. ¿Herencia privada en C#?
- 3. Herencia múltiple en C#
- 4. Herencia en C++
- 5. Costos herencia en C++
- 6. Herencia jerarquía: constructor y destructor secuencia de ejecución
- 7. herencia genérica en C#?
- 8. Struct. Herencia en C
- 9. C++ vector con la herencia
- 10. herencia de interfaces en C++
- 11. constructores La herencia en C++ 0x
- 12. Pregunta sobre la herencia múltiple en C++?
- 13. cómo simular la herencia múltiple en C#
- 14. Dilema de herencia múltiple en C++
- 15. herencia de plantilla C++
- 16. C++ Struct herencia en Cython
- 17. Destructores y herencia en C++?
- 18. ambigüedad en la herencia múltiple de interfaces en C++
- 19. C++ Plantilla vs Herencia
- 20. C# Clase Herencia
- 21. C# - herencia avanzada
- 22. Comprensión de la herencia de protocolos en Objective-C
- 23. C#: Herencia transitiva
- 24. Herencia múltiple de Objective-C
- 25. C# serialización/Herencia
- 26. C++ herencia virtual
- 27. Herencia única en C# - ¿clase de objeto?
- 28. C++ herencia downcasting
- 29. problema de herencia múltiple en C#
- 30. Herencia de miembros estáticos en C#
Esta debería ser la respuesta aceptada. – QuantumKarl