Dziedziczenie (C++)Inheritance (C++)

W tej sekcji wyjaśniono, jak używać klas pochodnych do tworzenia rozszerzalnych programów.This section explains how to use derived classes to produce extensible programs.

OmówienieOverview

Nowe klasy mogą pochodzić z istniejących klas przy użyciu mechanizmu o nazwie "dziedziczenie" (zobacz informacje zaczynające się pojedynczym dziedziczeniem).New classes can be derived from existing classes using a mechanism called "inheritance" (see the information beginning in Single Inheritance). Klasy, które są używane do wyprowadzania są nazywane "klasami podstawowymi" określonej klasy pochodnej.Classes that are used for derivation are called "base classes" of a particular derived class. Klasa pochodna jest zadeklarowana przy użyciu następującej składni:A derived class is declared using the following syntax:

class Derived : [virtual] [access-specifier] Base
{
   // member list
};
class Derived : [virtual] [access-specifier] Base1,
   [virtual] [access-specifier] Base2, . . .
{
   // member list
};

Po tagu (nazwie) klasy zostanie wyświetlony dwukropek, po którym następuje lista specyfikacji podstawowych.After the tag (name) for the class, a colon appears followed by a list of base specifications. Klasy bazowe, dlatego nazwane, muszą zostać zadeklarowane wcześniej.The base classes so named must have been declared previously. Specyfikacje podstawowe mogą zawierać specyfikator dostępu, który jest jednym ze słów kluczowych public protected lub private .The base specifications may contain an access specifier, which is one of the keywords public, protected or private. Te specyfikatory dostępu są wyświetlane przed nazwą klasy bazowej i mają zastosowanie tylko do tej klasy bazowej.These access specifiers appear before the base class name and apply only to that base class. Te specyfikatory kontrolują uprawnienia klasy pochodnej do użycia do elementów członkowskich klasy podstawowej.These specifiers control the derived class's permission to use to members of the base class. Aby uzyskać informacje na temat dostępu do elementów członkowskich klasy bazowej, zobacz Access Control elementu członkowskiego .See Member-Access Control for information on access to base class members. Jeśli specyfikator dostępu zostanie pominięty, jest brany pod uwagę dostęp do tej bazy private .If the access specifier is omitted, the access to that base is considered private. Specyfikacje podstawowe mogą zawierać słowo kluczowe, virtual Aby wskazać wirtualne dziedziczenie.The base specifications may contain the keyword virtual to indicate virtual inheritance. Słowo kluczowe może występować przed lub Po specyfikatorze dostępu, jeśli istnieje.This keyword may appear before or after the access specifier, if any. Jeśli jest używane wirtualne dziedziczenie, Klasa bazowa jest nazywana wirtualną klasą bazową.If virtual inheritance is used, the base class is referred to as a virtual base class.

Można określić wiele klas podstawowych, rozdzielając je przecinkami.Multiple base classes can be specified, separated by commas. W przypadku określenia pojedynczej klasy bazowej model dziedziczenia jest pojedynczym dziedziczeniem. Jeśli określono więcej niż jedną klasę bazową, model dziedziczenia jest nazywany wielokrotnym dziedziczeniem.If a single base class is specified, the inheritance model is Single inheritance.If more than one base class is specified, the inheritance model is called Multiple inheritance.

Dostępne są następujące tematy:The following topics are included:

Słowa kluczowe __super i __interface są udokumentowane w tej sekcji.The __super and __interface keywords are documented in this section.

Zobacz teżSee also

Dokumentacja języka C++C++ Language Reference