Czy struct
można dziedziczyć w C ++?
Czy struct
można dziedziczyć w C ++?
Odpowiedzi:
Tak, struct
jest dokładnie taki sam, class
z wyjątkiem domyślnej dostępności public
dla struct
(podczas gdy jest private
dla class
).
Tak. Dziedziczenie jest domyślnie publiczne.
Składnia (przykład):
struct A { };
struct B : A { };
struct C : B { };
Poza tym, co już powiedzieli Alex i Evan, chciałbym dodać, że struktura C ++ nie jest podobna do struktury C.
W C ++ struktura może mieć metody, dziedziczenie itp., Podobnie jak klasa C ++.
Oczywiście. W C ++ struktury i klasy są prawie identyczne (między małymi różnicami są takie rzeczy, jak domyślne ustawienie publiczne zamiast prywatnego).
W C ++ dziedziczenie struktury jest takie samo jak klasa, z wyjątkiem następujących różnic:
Podczas tworzenia struktury z klasy / struktury domyślny specyfikator dostępu dla klasy bazowej / struktury jest public. A podczas tworzenia klasy domyślny specyfikator dostępu jest prywatny.
Na przykład program 1 kończy się niepowodzeniem z powodu błędu kompilacji, a program 2 działa dobrze.
// 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;
}