subclases resueltos que polimorfismo objetos objeto herencia funciones ejercicios ejemplos codigo clases c++ inheritance struct

resueltos - Struct heredar en C++



que es un objeto en c++ (5)

Aparte de lo que Alex y Evan ya han declarado, me gustaría añadir que una estructura C ++ no es como una estructura C.

En C ++, una estructura puede tener métodos, herencia, etc. al igual que una clase de C ++.

¿Se puede heredar una struct en C ++?


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 especificador de acceso predeterminado para una clase / estructura base 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; }


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í, struct es exactamente como class excepto que la accesibilidad predeterminada es public para struct (mientras que es private para class ).


Sí. La herencia es pública por defecto.

Sintaxis (ejemplo):

struct A { }; struct B : A { }; struct C : B { };